概述
1.问题描述。
在开发一个基于stm32的空气净化系统调试时候遇到了问题,stm32 IO口输出电平输出不稳定,系统使用一个大功率的5V稳压模供电,控制8个继电器,PM2.5四合一传感,测速传感器,10.1寸迪文串口屏幕,还有测试使用的打印串口。继电器就使用stm32普通IO口控制(高低电平控制断开和闭合),屏幕和传感器通过分别通过UART1,UART2串口与stm32通信。
要实现通过串口屏幕关机,同时通过硬件按钮短按开机,长按关机,就想电脑关机功能那样。(开关与电源控制继电器并联通过,软件构成自锁结构,短按开关系统上电在main()函数中通过设置PA1IO口高电平让继电器控制电路闭合)。发现短按开关后继电器不能闭合,有时候其自动模式他继电器也不按程序执行。测量发现IO口高电平时候电压是1.5V,不是3.3V。
2.问题分析
2.1检查继电器是否正常
直接给继电器控制线高电平都能正常闭合,所以继电器是没问题
2.2程端口初始化错误或者程序逻辑错误
分别检查控制继电器的IO初始化设备,设置为推挽输出,初始化电平为低电平;在控制继电器动作的条件语句中加入打印函数,通过穿上位机串口查看程序是否执行。以上都没有问题。
2.3稳压模块功率不够导致MCU供电不足
查看每个元器件功率和电源功率对比,电源的额定功率是足够的。通过电流表实测电流乘上电压,发现功率也是够
2.4 MCU受其他模块干扰导致IO输出电平不稳定
使用两个电源模块供电,其中MCU单独供电测试发现IO高电平输出正常。
3.经验总结
嵌入式开发,外围设备比较多,电路系统有频繁的高低电平变化和干扰时候,MCU单独供电边角合适。嵌入式系统调试比纯编程要麻烦一些,因为问题可能来自软件和硬件。遇到问题时候要两边凑,一个一个排除。软件调试最好使用串口,把重要程序执行过程打印出,可以查看程序执行打哪里,问题出在哪里。硬件首先检查接线,还有驱动文件和函数调用,供电是否稳定,还有外部电磁或者电源干扰。
最后
以上就是怕孤单老鼠为你收集整理的1.stm32嵌入式系统IO信号输出不稳定1.问题描述。2.问题分析3.经验总结4.*****@小绵羊嵌入式工作室@小骆驼AI工作室@*****的全部内容,希望文章能够帮你解决1.stm32嵌入式系统IO信号输出不稳定1.问题描述。2.问题分析3.经验总结4.*****@小绵羊嵌入式工作室@小骆驼AI工作室@*****所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复