stm32GPIO无法工作原因

最近在调试0.96寸oled时遇见了一个非常奇怪的问题,当我软件模拟spi时某些引脚死活不工作,一开始我以为是我的板子问题,但实际上是stm32对于某些引脚默认有一些操作,导致无法正常的初始化。

stm32默认开启的JTAG模式

对于开发者来说,stm32很多引脚都有非常丰富的功能,能让我们开发者进行很多功能的开发,但是正是因为引脚功能太过丰富,说明文档虽然相比其他芯片已经很清晰了,但是依然会忽略某些重要的东西。比如说stm32对于某些脚默认开启了JTAG模式,假如没有显式声明取消JTAG功能,那么关于这些引脚的所有功能初始化都会失败。
根据stm32f103的操作手册,PA13,PA14,PA15,PB3,PB4,这几个脚都是默认开启了JTAG模式,所以当我们需要用到这几个脚时,必须声明

1
2
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO ,ENABLE);//重映射需要先使能AFIO时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//只关闭JTAG而保留SWD

GPIO引脚问题

一般来说,碰到GPIO引脚问题,第一步都是检查是否虚焊,假如没有虚焊的话,检查代码配置问题,如果代码配置也没有问题的话,就必须回到操作手册上看引脚定义,看该引脚是否可能存在默认的引脚配置,比如上文提到的JTAG模式。

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. stm32默认开启的JTAG模式
  2. 2. GPIO引脚问题
,