概述
最近在调试0.96寸oled时遇见了一个非常奇怪的问题,当我软件模拟spi时某些引脚死活不工作,一开始我以为是我的板子问题,但实际上是stm32对于某些引脚默认有一些操作,导致无法正常的初始化。
stm32默认开启的JTAG模式
对于开发者来说,stm32很多引脚都有非常丰富的功能,能让我们开发者进行很多功能的开发,但是正是因为引脚功能太过丰富,说明文档虽然相比其他芯片已经很清晰了,但是依然会忽略某些重要的东西。比如说stm32对于某些脚默认开启了JTAG模式,假如没有显式声明取消JTAG功能,那么关于这些引脚的所有功能初始化都会失败。
根据stm32f103的操作手册,PA13,PA14,PA15,PB3,PB4,这几个脚都是默认开启了JTAG模式
所以当我们需要用到这几个脚时,必须声明
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO ,ENABLE);//重映射需要先使能AFIO时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//只关闭JTAG而保留SWD
GPIO引脚问题
一般来说,碰到GPIO引脚问题,第一步都是检查是否虚焊,假如没有虚焊的话,检查代码配置问题,如果代码配置也没有问题的话,就必须回到操作手册上看引脚定义,看该引脚是否可能存在默认的引脚配置,比如上文提到的JTAG模式。
最后
以上就是紧张硬币为你收集整理的stm32GPIO无法工作原因stm32默认开启的JTAG模式GPIO引脚问题的全部内容,希望文章能够帮你解决stm32GPIO无法工作原因stm32默认开启的JTAG模式GPIO引脚问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复