stm32的串口5接485,115200波特率导致死机,9600却没事,求助!!

2019-12-27 18:59发布

本帖最后由 guxingganyue 于 2012-11-22 09:34 编辑

如题,我用stm32f103VET6的串口5和485通信,串口每次向485发送150字节,上位机每个1秒发一条命令,串口收到后就向485发送150字节

目前的现象是115200波特率的话,单片机会死机(lcd屏幕不刷新了),但是定时器中断还能触发(led灯在闪烁),26秒后内部狗复位,一切恢复正常

上位机继续发命令,不到3分钟的时间单片机死了

但是我用9600的波特率通信,1秒发一次命令,测试了1个晚上机器也没有死机

1、单片机和上位机间的连线不是很长,就2米左右,485芯片为:max3485,贵的那种
2、stm32外接8M晶振,系统跑72M

下面是485的连接图:请高手指教

注:把那个120欧姆的电阻去掉与否现象一样

111.png (38.89 KB, 下载次数: 0) 下载附件 2012-11-22 09:32 上传

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
37条回答
guxingganyue
1楼-- · 2020-01-01 04:07
xjjiang 发表于 2012-11-23 19:24
120ohm电阻,首尾各一个,楼主可能要多看485方面的资料,120ohm电阻用途是什么?485芯片AB线电压范围,接 ...



多谢,正在仔细看中······
guxingganyue
2楼-- · 2020-01-01 09:59
 精彩回答 2  元偷偷看……
foreng5908
3楼-- · 2020-01-01 14:39
楼主问题解决了吗?
yzuwdf
4楼-- · 2020-01-01 17:57
楼主问题解决了吗?我最近也遇到差不多的问题。
MikePandora
5楼-- · 2020-01-01 19:46
其实,使能后 要延时几十us ~几百us  时间再发送,  RS485转换发送和接收需要一定时间, 9600 肯定够啦, 115200 就影响了! 不延时误码率很高。。。     楼主可能是误码造成的程序死机,   但程序如果写的足够强壮,也不会死机的
robincui
6楼-- · 2020-01-01 21:04
一般用9600的多,比如电力行业

一周热门 更多>