找回密码
 立即注册
查看: 887|回复: 0

STC15和STC8多串口校验位的问题

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-01-26 21:49:41

3

主题

7

回帖

145

积分

注册会员

积分
145
发表于 2023-6-16 10:03:06 | 显示全部楼层 |阅读模式
本帖最后由 longe 于 2023-6-16 10:13 编辑

下载stc15的4串口中断自发自收范例,随便修改各自串口的波特率都能正常通信,未发现丢包现象。

手头一个项目:把一个非标协议改为标准的modbus协议,使用stc15w4k56S4/stc8F2k64s4 (32脚封装)的com1、com2。

com1、com2都使用1200/8,N,1 。com1只接收非标协议解析,com2与主机modbus通信。
使用电脑两个串口反复测试正常。
安装现场后发现com1通信不正常,检查com1使用的是1200/8,E,1。com2不变。

修改com1的串口初始化:

SCON = 0xD0;        //9位数据,可变波特率

com1的发送接收按范例对应修改。
再次使用电脑两个串口反复测试发现com2经常会不正常。

将com2接收的数据原版发送回来监测,发现com2接收的数据经常会丢失头两个字节,一条modbus的03协议8字节,单片机只能接收后面6字节。但是如果接收到完整的字节,则能将正确的modbus数据发送回来。

将com1接收的数据(用com1或com2)发送回来监测,正常。

得出的结论是修改com1的通信协议为9位数据,可变波特率后造成com2的接收不正常。
换stc8F2k56S4相同封装单片机也出现同样问题。


回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 23:08 , Processed in 0.139242 second(s), 45 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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