STM32f0按键模块电路经常遇到上电不复位的情况.doc
《STM32f0按键模块电路经常遇到上电不复位的情况.doc》由会员分享,可在线阅读,更多相关《STM32f0按键模块电路经常遇到上电不复位的情况.doc(2页珍藏版)》请在三一文库上搜索。
1、STM32f0按键模块电路经常遇到上电不复位的情况描述:STM32f0按键模块电路经常遇到上电不复位的情况,芯片采用的是stm32f030,按键模块采用ZLG7290芯片、4X4按键LED矩阵。ZLG7290是周立功公司专门开发的按键芯片,其最大可支持64个按键和64个LED,可通过I2C协议对其读写,ZLG7290与stm32f030复位电路采用datasheet参考电路,如下:正常情况下,电路上电后会有一个LED全部点亮的过程,上电稳定延时后,LED自动全部熄灭,正常运行时,按下相应按键其对应的LED灯应被点亮。问题:STM32复位电路内部有自带的上拉电阻,同时PVD的电源检测阈值采用的是
2、默认值2.2V,采用电池供电,电压表测量引脚电压在2.8V左右,但是电路上电后不能正常运行,LED矩阵上电不能被点亮,按键按下后相应LED灯无反应。测试stm32f030复位测试stm32f030上电复位后,程序依次执行初始化的过程,其中包括设置时钟为内部48MHZ时钟频率,设置并启动串口、I2C等,之后执行LED灯全部点亮函数,延时3s关闭所有LED并进入主功能程序。测试任务:stm32f030是否能复位:既然上电后LED灯不能全部点亮,则LED灯全部点亮函数不能正常执行,则在此函数之前添加一个UART串口发送函数。测试结果:串口发送函数被执行,在超级终端收到正常的数据。此时表示stm32f
3、030能正常复位。测试任务:注释掉LED灯全部点亮函数此时上电后,LED不能被全部点亮(函数被注释),但是按下按键后相应LED可以被点亮。此时可锁定问题在LED灯全部点亮函数上。分析:LED灯全部点亮函数实际上是一个I2C写函数,通过向ZLG7290相应寄存器写入0xFF,可点亮LED。采用上面测试的方法,在函数的每一条语句之前插入一条UART发送函数,分析执行情况,其中while(I2C_GetFlagStatus(I2C1,I2C_FLAG_TXIS)=RESET);执行没有问题,再次说明stm32f030能正常复位。但是在I2C_Senddata(I2C1, data);语句之后,UART发送函数不能被正常执行,因此问题被锁定。ZLG7290不能被正常读写,很可能ZLG7290没有被复位。查阅ZLG7290的datasheet,发现ZLG7290复位时间在20ms左右,其远远大于stm32f030,因而产生ZLG7290没有正常复位的情况。结论:电路上电不复位的原因可能是多方面的,特别是stm32f030和外围电路均需要复位的情况,因此各个模块可能需要隔离测试,最终锁定问题才能找到解决的方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32f0 按键 模块 电路 经常 遇到 上电不 复位 情况
链接地址:https://www.31doc.com/p-3273496.html