找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机串口通信问题 为什么我发送的1返回的不是1呢?

查看数: 1205 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-1-17 16:25

正文摘要:

为什么我发送的1返回的不是1呢?

回复

ID:856329 发表于 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. }
复制代码
ID:453974 发表于 2022-1-18 20:44
查一下波特率吧
ID:625730 发表于 2022-1-18 09:24
检查一下板子上的晶振频率是多少,根据晶振频率确认一下你的波特率设置是否正确。
ID:752974 发表于 2022-1-18 08:24
看看串口助手显示方式是HEX还是ASCII.

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表