STM32,这个MPU上电默认PB4 PB3 PA15这些引脚电平且无法正常拉高拉低。
PB4,PA15为高电平,PB3为低电平。
其实原因是:I/O口不能正常输出一般都是端口被复用了造成的。
文章讲的这几个端口在单片机上电时默认就是复用的,JTAG相关的PA13,PA14,PA15,PB3,PB4引脚,禁用JTAG或SWD可以释放其中的一些引脚。
这个就是复用功能
我们需要使用stlinkV2进行烧录所以使用,部分重映射。JTAG-DA失能,SW-DP使能;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO ,ENABLE);//重映射需要先使能AFIO时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//只关闭JTAG而保留SWD
打开复用时钟是为了,使用重映射功能。(PinRemapConfig)
重映射就是引脚重映射,本来每个内置外设都有原来设定的引脚,所谓的重映射就是通过某种方式,将外设本来的引脚的功能赋予给另外的引脚。这里就是释放了PB4,PB3,PA15.
以下是代码实例:
void Motor_Init(void)
{
GPIO_InitTypeDef GPIO_Init