找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机RS485通信丢字符,丢了头个字节数据,求指导

[复制链接]
跳转到指定楼层
楼主
各位大神,我在学习STC8A8K64S4A12单片机的RS485通信时,用串口助手发送数字2,会返回设定的字符chenggong,结果只返回了henggong,少了个首字母c,
换成设定返回FIYU后,返回还是少个头字母F,返回是IYU,这是啥情况啊,有返回,说明通信正确率,但却丢了头个字母,
请有知道的大神指点指点!!感谢!!
单片机用的是串口2
截图如下


源程序如下

15 串口2 及485功能.rar

47.5 KB, 下载次数: 14

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

使用道具 举报

沙发
ID:161164 发表于 2022-1-30 16:23 | 只看该作者
选择Hex模式
看看是完全收不到第一个字还是收到乱码没有显示
m485=1;后加个延时看看
回复

使用道具 举报

板凳
ID:625730 发表于 2022-1-30 18:04 | 只看该作者
你这个情况好像是发送字符串之前TI位被置1了,所以第一个字符没发出去,后面发送字符之前,TI位都是0,能够顺利发送。但是程序上有看不出来哪里先把TI位给置1了,可以在U2SendString("chenggong\r\n");这一句前面加一句S2CON&=~S2TI;发送前先把TI置0,供参考。
回复

使用道具 举报

地板
ID:796928 发表于 2022-1-30 19:36 | 只看该作者
检查一下波特率及一些串口设置是否正确
回复

使用道具 举报

5#
ID:883698 发表于 2022-1-30 22:23 | 只看该作者
485使能后做个短暂延时
回复

使用道具 举报

6#
ID:476652 发表于 2022-1-31 12:46 | 只看该作者
找到了,连续2个发送模式,去掉第2个发送模式。接收就正常了,看来是第2个发送模式影响的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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