找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1203|回复: 4
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
为什么我发送的1返回的不是1呢?

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

串口.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:752974 发表于 2022-1-18 08:24 | 只看该作者
看看串口助手显示方式是HEX还是ASCII.
回复

使用道具 举报

板凳
ID:625730 发表于 2022-1-18 09:24 | 只看该作者
检查一下板子上的晶振频率是多少,根据晶振频率确认一下你的波特率设置是否正确。
回复

使用道具 举报

地板
ID:453974 发表于 2022-1-18 20:44 | 只看该作者
查一下波特率吧
回复

使用道具 举报

5#
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. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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