关于单片机串口通信波特率问题
2017-08-12 23:14
274 查看
今天学习单片机串口通信,编写了单片机与PC机的通信程序,即PC机向单片机发送信息,单片机再把信息返回给PC机,并显示出来。在调试的时候总是没有结果,检查了半天,发现错误,而且很容易被忽略的错误。用串口通信计算器在确定波特率的时候,一定要注意误差,如果过大的话(我第一次设定波特率9600,误差是6%多),通信也是有问题的,一定要把误差尽量缩小,1%以内。第二次设定波特率2400,误差1%以内。
下面是代码:
下面是代码:
/************************* * 串口通信 * 作者:panda * 日期:2017/08/12 *************************/ #include<reg52.h> typedef unsigned int u16; typedef unsigned char u8; u8 receiveData,flag; void init() { TMOD=0x20; //计数器工作在方式2,8位自动重装 PCON=0x00; //SMOD=0; 不倍频(不使波特率增倍) SMOD不可位寻址 TH1=0xf3; TL1=0xf3; //波特率为2400 TR1=1; SCON=0x50; // SM0=0; // SM1=1; // SM2=0; // REN=1; //允许串行接收位打开 EA=1; //开总中断 ES=1; //开串行口中断 } int main() { init(); while(1) { if(1==flag) { flag=0; SBUF=receiveData; } } return 0; } void ser() interrupt 4 { if(1==RI) { flag=1; RI=0; receiveData=SBUF; } else { TI=0; } }
相关文章推荐
- 关于串口通信波特率的几点思考
- 关于STM32F107RCT6使用8M晶振串口波特率错误的问题
- TI MSP430系列单片机串口通信波特率计算方法
- TI MSP430系列单片机串口通信波特率计算方法
- 关于串口转485通信中丢字段的问题
- 关于单片机串口发送时初始发送的数据第一个总是00的问题解决
- 关于java串口通信 接受显示 乱码的字符转换问题解决方案
- 单片机串口通信波特率计算
- 关于串口通信波特率的几点思考
- STC单片机11.0592晶振实现115200波特率串口通信
- STM32单片机的串口通信波特率应该这样计算
- 关于串口与单片机通信电平转换的总结
- 关于单片机和PC通信显示中文的乱码问题。
- STC单片机11.0592晶振实现115200波特率串口通信
- STM32单片机的串口通信波特率应该这样计算~
- 关于单片机下载的一些问题
- 关于郭天祥单片机书上第四十七页延时函数的相关计算问题
- 关于mtk Android打开串口权限问题
- 一个关于UDP通信端口的问题
- 关于麒麟座开发板串口打印乱码与其它工程用官方源码出问题的解决方案