标签:
今天调程序,按正常的IO口配置,发现PB3、PB4并不能按照预定的设置置1或置0。
上网查询后,原因如下:
STM32默认启动时PB4、PB3、PA15三个引脚不是普通IO,而是JTAG的复用功能,分别为JNTRST、JTDI、JTDO。
当我们试用SWD接口调试仿真时,这三个引脚可以用作普通IO。
具体做法就是禁用JTAG功能。只需使用以下语句即可。
#define GPIO_Remap_SWJ_JTAGDisable ((uint32_t)0x00300200) /*!< JTAG-DP Disabled and SW-DP Enabled */ GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); /*使能SWD 禁用JTAG*/
同时,还需要在初始化之前打开AFIO时钟:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);
AFIO相关文章:AFIO时钟何时开启
标签:
原文地址:http://www.cnblogs.com/eryueniao/p/5674587.html