|
楼主 |
发表于 2020-5-27 14:34:25
|
显示全部楼层
2020-05-27更新1.20版:
优化结构体定义,修改了接收发送缓存的定义
优化串口接收部分,接收更稳定正确
异步收发 接收和发送同时进行互不影响
三倍采样率 如9600波特率,定时器中断时间为34.6uS
使用方法:
1、定义接收和发送的IO口
//C51
sbit IO_RX P2^1;
sbit IO_TX P2^2;
//PIC
#define IO_RX RC3 //定义接收的IO口
#define IO_TX RC4 //定义发送的IO口
2、在main主程序while(1)循环之前加上串口初始化代码
UART_INIT();
3、设置一个定时器的中断时间为34.6uS,在定时器中断里加上下边的代码
UART_TX();
UART_RX();
4、在main主程序while(1)循环中判断,UART_RX_STA标志是否是RX_DATAOK,如果是则收到新数据,可以处理收到的数据或将数据转存。
if(UART_RX_STA==RX_DATAOK)
{
unsigned char dat;
dat=UART_RX_BUFF; //UART_RX_BUFF里的数据为串口收到的数据
UART_RREST(); //准备接收下一字节数据
}
5、在发送数据前判断UART_TX_STA标志是否是TX_FREE空闲状态,是空闲状态
if(UART_TX_STA==TX_FREE)
{
unsigned char dat;
dat=0xF2;
UART_TDATA(dat); //将dat从串口发送出去
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|