本帖最后由 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 上传
串口优先级低于定时中断,造成115200波特率时候,2个数据塞死串口,这是stm32的bug。
办法有很多,1.串口优先级最高 2.用dma接收,你管他数据是啥。收回来了再分析,看你的串口接收部分,蛋疼。
一周热门 更多>