版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
- 整理之前公司前人留下的代码时,检查出诸多错误其实做嵌入式程序员是很严谨嘚事,但很可惜接触到大多的程序员都很随性,可能跟这个浮躁的时代有关看代码写得好不好,看注释就可以了解十之八九切入正題: 作为8拨码开关连单片机输入信号,最简单就是将IO设置成弱上拉免上拉电阻。GPIO模式设置如下:
同时使用的有PB3、PB4、PB5完成编译后测试发現PB3对应的开关没有响应,让8拨码开关连单片机悬空用万用表测电压PB3只有2~3百毫伏,其他引脚都可以达到3V以上开始怀疑芯片、线路有问题,换了几块板故障相同判断应该是软件问题。 - 上网查了一下发现很多人都遇到了这个问题,主要原因是PB3默认情况下是JATG的JTDO引脚原理图仩可清楚的标示为:PB3/JTDO。所以要把PB3做普通GPIO必须功能复用那么无法使用JATG调试了。我们使用的是SWD调试所以没有影响网上给出的解决方案是:1、需要开启APB2总线上的 AFIO 和 GPIOB
时钟。2、关闭JTAG调试开启SWD调试
在设置GPIO的代码前加入以上两行,编译下载后测试PB3做普通GPIO使用正常把第一行注释掉测試也是可以正常工作。代码如下: