标题: 51单片机串口通信问题 为什么我发送的1返回的不是1呢? [打印本页]

作者: jinnan    时间: 2022-1-17 16:25
标题: 51单片机串口通信问题 为什么我发送的1返回的不是1呢?
为什么我发送的1返回的不是1呢?

串口.jpg (137.52 KB, 下载次数: 36)

串口.jpg

作者: munuc_w    时间: 2022-1-18 08:24
看看串口助手显示方式是HEX还是ASCII.
作者: TEC    时间: 2022-1-18 09:24
检查一下板子上的晶振频率是多少,根据晶振频率确认一下你的波特率设置是否正确。
作者: 累不死的狗    时间: 2022-1-18 20:44
查一下波特率吧

作者: Lxy18    时间: 2022-1-20 11:18
串口助手发送的数据是ASIIC码格式,需要在接收函数中将数据转换一下,可以将接收的数据-48或者-'0'。另外需要确认程序设置的波特率和串口助手的波特率一致,否则也会通讯失败。
自用串口初始化代码如下:
  1. void Usart_Init(void)
  2. {
  3.         /*12MHz晶振*/
  4.         SCON=0x50;                //(0101)工作方式一:8位异步收发,波特率可变,允许接收数据
  5.         TMOD|=0X20;                //设置计数器工作方式2,8位自动装载模式
  6.         PCON|=0x80;                //波特率加倍
  7.         TH1=0xf3;                //计数器初始值设置,波特率4800
  8.         TL1=0xf3;
  9.         TR1=1;                        //打开计数器
  10.         PS=1;                        //串口中断高优先级
  11.         ES=1;                        //打开接收中断
  12.         EA=1;                        //打开总中断       
  13. }
复制代码





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1