赞
踩
首先简述遇到此问题的情况。在某一个项目上,硬件上设计了MCU可以将电池供电部分的供电开关断开,目的是在出厂时需要充好电池的电并且处于关电状态防止电池放电,而这个控制脚恰好是PB4,实测在仅由电池供电时,将PB4下拉,MCU会在下电处于临界复位电压时,由于PB4是内部默认拉高的,所以又会上电,这就导致无法下电,经测试更换到其他的GPIO就好了。
查询Reference manual发现,PB4确实存在默认内部上拉的情况。
实测STM32L476板子的调试口相关GPIO电压的情况:
PB3 - JTDO
PB4 - JTRST
PA13 - JTMS
PA14 - JTCK
PA15 - JTDI
【关于这几个脚的默认电平】
PB3 - 低
PB4 - 高
PA13 - 高
PA14 - 低
PA15 - 高
以上实测结果是在MCU跑最简单的程序即不对调试脚做任何处理,再用万用表量得的电压情况,结合Reference manual来看,是完全符合的。其中PB3应该是没有默认上拉下拉的,Reference manual没有对其做特别说明。
目前确认该情况的芯片有STM32L4系列,STM32F1系列,应该还有很大部分都是一样的,这里就是注意项目中要注意这些有默认电平的GPIO,防止对硬件功能有影响。在MCU初始化该GPIO之前总有一段时间是无法控制其状态的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。