📄 test0c.c
字号:
#include <reg51.h>
#include <stdio.h>
#include <string.h>
#define INBUF_LEN 4
unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3;
bit read_flag=0;
void init_serialcomm(void)
{
SCON =0x50;
TMOD = 0x20;
PCON = 0x80;
TH1 = 0xF4;
IE=0x90;
TR1 = 1;
}
void send_char_com(unsigned char ch)
{
SBUF=ch;
while (TI==0);
TI=0;
} //向川口发送一个字符串,strlen为该字符传长度
void send_string_com(unsigned char *str,unsigned int strlen)
{
unsigned int k=0;
do
{
send_char_com(*(str + k ));
k++;
}while (k < strlen);
}
void serial() interrupt 4 using 3 //串口接受中断函数
{if (RI)
{
unsigned char ch;
RI = 0;
ch =SBUF;
if (ch > 127)
{count3=0;
inbuf1[count3]=ch;
checksum= ch-128;
}
else
{count3 ++;
inbuf1[count3]=ch;
checksum ^=ch;
//if ((coun3 ==(INBUF_LEN-1))&&(checksum))
//{read_flag=1; //如果川口接收的数据达到inbuf_len
//且教研没错,就职位取数标志
//}
}
}
}
main()
{init_serialcomm(); //初始化川口
while(1)
{if (read_flag) //如果取数标志已经置位 ,就将读到的数据从川口发出
{read_flag=0; //取数标志清0
send_string_com(inbuf1,INBUF_LEN);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -