如果你的代码没有其他错误或者逻辑问题,但是编译调试时某个代码块就是运行不了,怎么也不进去,那么你可以去看看手册上的I/O口时钟复用,重映射等相关章节,加上一两句代码就可以了。这里以我曾经调试了几天的PB3口为例,其他的以此类推。
一开始的代码:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
修改后的代码:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB,ENABLE);
//使能PB端口时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
//JTAG-DP 禁用 + SW-DP 使能
额,可能写的比较潦草,但是还是希望能以此能提供一个思路给遇上问题的同伴,还有就是我发现这个I/O口的学问真的很有点意思。