记录一次项目经历,关于stm32的“共地”

来源:互联网 发布:微信 知乎 编辑:程序博客网 时间:2024/05/17 00:17

2017年11月,自己做的第一个项目接近尾声。
问题描述:
做的水质检测仪在之前的研发中功能能够正常运行,但是因为第一个产品的各种固件和stm32f103主控板都被安装到机器里了,不便于调试升级,因此,陶工另外买了一份stm32f103板和一块串口屏作为开发使用。
将MCU和串口屏连接好之后,下载程序到MCU,复位之后,发现串口屏上并未出现预想的初始化设置,在以前的设备上完好运行的程序,换了同样的新设备后发现运行异常。
解决办法
(1)找原因:单步调试程序后发现,串口屏上的初始化信息并未被MCU发送出去。
MCU和串口屏之间之间的通讯是通过串口3来进行的,现在两者之间通讯异常,表示故障出现在串口3.
(2)检查接线问题:TXD和RXD接线正确;
(3)检查硬件问题:
1.检查MCU:用一个最小程序通过串口3给电脑串口调试助手发送字符‘a’
USART_SendData(USART3,’a’);
发现调试助手能接收到串口发送的信息,说明MCU 串口3完好;
2.用以前的程序和硬件,设备功能无错误,串口屏也能工作,说明所有硬件都无误。
对比两种情况的差别:
发现两者唯一的区别在于:之前做的东西,因为用的是正点原子战舰STM32F103ZET6的质量上乘的板子,板子有自己的专门供电口,供电电压为12v,这样板子上5V电压接口电压正好5V,不打折扣,此时串口屏的电源线和GND线都接在单片机上,串口屏与单片机共地,因此程序运行无误。
而在后来在重复做的时候,甲方提供了比较low的最小系统stm32f103板(德飞莱),板子只能用电脑的USB线供电,此时板子整体电压就偏低了,所以串口屏如果接到
板子上就会供电不足,无法开启。因此我就用了甲方提供的蓄电池给串口屏供电,导致串口屏和单片机没有“共地”,因此程序运行异常。
修正:将串口屏上的GND线引一根到单片机上,使二者共地。修正后,错误解决。
心得体会:
对于硬件方面的无知,是这次错误的主要原因,因此以后要加强电子技术知识的学习。

2017/11/9
湖北大学计信学院506实验室记