[STM32] 485通信波特率不对会死机

[复制链接]
2898|11
 楼主| guyan1987 发表于 2016-9-22 17:28 | 显示全部楼层 |阅读模式
LPC2387与电脑485通信(使用市面上40块钱左右的232转485通信模块)
MCU配置9600,电脑使用串口调试工具发送数据,若电脑配置9600通信正常,若配置其它波特率如:38400,MCU直接挂掉,此问题怎么破?求大神支招。。。
 楼主| guyan1987 发表于 2016-9-22 17:31 | 显示全部楼层
若两台电脑使用串口调试工具,互相收发数据,波特率不同。也只是收到数据不正确而已。LPC2387已做数据出错,及缓存空间大小出错处理。(排除数据量太大问题)
liuyu305 发表于 2016-9-22 17:40 | 显示全部楼层
那要看你代码里面对串口数据处理的问题了
ayb_ice 发表于 2016-9-22 18:30 来自手机 | 显示全部楼层
程序容错处理不行,不是正常数据没有考虑结果
hello_海涛 发表于 2016-9-22 20:59 | 显示全部楼层
完善你的接收函数吧,收到异常的码值的处理不对。刚搞modbus的都会遇到这种问题
 楼主| guyan1987 发表于 2016-9-23 08:12 | 显示全部楼层
ayb_ice 发表于 2016-9-22 18:30
程序容错处理不行,不是正常数据没有考虑结果

若是我用9600的波特率,发任何数据都不会死。只要波特率一改就挂
ningling_21 发表于 2016-9-23 08:57 | 显示全部楼层
guyan1987 发表于 2016-9-23 08:12
若是我用9600的波特率,发任何数据都不会死。只要波特率一改就挂

程序问题
dirtwillfly 发表于 2016-9-23 16:18 | 显示全部楼层
明显是程序问题啊。最多接收的数据不对,不应该死机
henglin 发表于 2016-9-23 16:28 | 显示全部楼层
基本可以说,你的程序有问题
ccxlslr 发表于 2016-9-24 17:55 | 显示全部楼层
我也认为是程序问题,要考虑意外情况!
天风立马 发表于 2016-10-11 21:24 | 显示全部楼层
有一种东西叫缓冲区溢出。至于是破坏栈区数据还是静态存储区数据,还是正常运行,====。看你造化了。
autooy 发表于 2016-10-12 08:53 | 显示全部楼层
什么叫MCU挂掉?烧了还是不发送或者接受数据?这词用得有点蒙...
485发送与接收115200BPS都没有问题滴.你是中断还是查询方式?是否有对应清理标志位?波特率,数据位,停止位,校验位,收发标志位,就这么多东西了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

133

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部