当前位置:首页 > STM32 > 正文内容

STM32F407与串口屏幕通信死机的解决办法

智凡单片机2018-11-10STM329121

最近在一个项目中用到了stm32f4芯片,显示屏幕用的是迪文的串口屏,测试过程中会出现莫名死机的问题,死机之前串口显示数据为零。主要考虑到系统中有多个直流水泵与步进电机,还有几个外部中断接传感器,怀疑是中断异常卡死,由于手头工具有限,只做了一下几种测试 与相关解决办法。

1.继电器跟步进电机 跟换为 mos管与光耦隔离方式,效果比较明显。但是,有一款大电流水泵工作时,同步显示数字,时间一长,还会造成死机。
2.水泵工作时,关闭所有中断, 效果没有改善。
3.水泵工作时,屏幕停止显示,不会出现死机现象。
通过以上测试判断为串口屏幕通讯过程中发生的异常。
1.清除串口错误标志位。无显著效果。
2.准备找个串口工具进行测试,解决办法会发到下面评论处
原因找到了,是为了显示效果,在开水泵的时候,屏幕显示进入循环了 。变成了不会停止的递归效果。。多加了两个标志位解决。
总结:光电隔离对电机干扰起到的作用是巨大的。。关键时候关闭中断可以起到一定的作用。如果需要使用外部中断功能。一定要做电源抗干扰处理。最好软件做多重判断。。如果板子已经定型。最好放弃外部中断。使用定时器中断加外部电平检测。


扫描二维码推送至手机访问。

版权声明:本文由智凡单片机c语言入门发布,如需转载请注明出处。

分享给朋友:

相关文章

基于STM32的常用数码管芯片TM1637驱动

基于STM32的常用数码管芯片TM1637驱动

IIC协议这里就不多说了;使用模拟IIC口 定义B14 B15#define AnalonSDA_Pin GPIO_PIN_12 #define AnalonSDA_G...

怎么解决Keil5中代码复制到word或记事本注释乱码问题

怎么解决Keil5中代码复制到word或记事本注释乱码问题

1)打开Keil5软件,Edit->Configuration...2)Editor子目录下,Encoding:复选框中选择“Chinese GB2312(Simplified)”3)点击OK,...

stm32f031G6U6单片机SWD烧写一次后,无法再次烧写解决方法。

stm32f031G6U6单片机SWD烧写一次后,无法再次烧写解决方法。

这几天在做一个小项目,需要用到stm32f0系列的单片机,画好的板子引出swd,方便调试和烧写程序,可是第一次swd烧写程序后,想再次烧写,发现keil里始终找不到设备,而且我的程序里也并没有复用sw...

STM32 USB接口的硬件设计

STM32 USB接口的硬件设计

USB协议,内容有很多,这里我们只说它关于硬件设计的部分。USB一般有4个引脚,一个VCC,一个GND,一个D+,一个D-。VCC一般是5V左右,D+和D-是通信用的数据线。USB有主从机之分,USB...

stm32cubemx生成的代码灯不会亮的总结

stm32cubemx生成的代码灯不会亮的总结

这两天学stm32点灯,死活不亮。遇到两个问题。1:时钟设置的时候要点一下才能使能2:用cube4.2版本的同学注意了,软件bug我去。刚看帖子有讲果真可以,不过还没明白是为什么。把上面的改成下面的就...

STM32串口接收不定长数据STM32USART空闲检测中断

STM32串口接收不定长数据STM32USART空闲检测中断

单片机串口接收不定长数据时,必须面对的一个问题为:怎么判断这一包数据接收完成了呢?常见的方法主要有以下两种:1.在接收数据时启动一个定时器,在指定时间间隔内没有接收到新数据,则认为数据接收完成;2.在...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。