本文所使用的单片机型号为STM32F030C8T6.
在030系列的单片机中,PA2引脚除了作为普通的IO引脚用作输入输出功能以外,还可以作为内部外设串口1,串口2,定时器15通道1这三个外设的功能引脚.那么如何配置这个IO口用作哪一种外设的功能引脚呢?查找STM32F030数据手册的31-32页,看到有这么两个表格,
这两个表格详细说明了,如何在IO口和外设之间做一一映射.
例如,想要配置PA2为TIM15_CH1功能,则配置复用功能的模式为AF0,可以调用库函数实现:
//进行IO映射,PA2映射到TIM15_CH1
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_0);//PA2-->TIM15_CH1
这里我们对该库函数进行一下说明,追踪其定义,该函数的原型可以不必理会,只需要看函数传递的参数即可.
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
第一个参数GPIOx:也就是我们需要进行映射的GPIO端口,既然我们是要对PA2进行映射,那这个参数当然是传递GPIOA啦.
第二个参数GPIO_PinSource:也就是我们要传递的GPIO具体的哪一个引脚,既然是对PA2进行映射,那就使用GPIO_PinSource2啦,注意这里不要使用GPIO_Pin_2,因为GPIO_PinSource2和GPIO_Pin_2是完全不一样的.
第三个参数GPIO_AF: 也就是表格中的映射关系,或者说是映射模式,查看表格,可以看到应该是使能AF0模式,那就传入GPIO_AF_0啦
/**
* @param GPIOx: where x can be (A or B) to select the GPIO peripheral.
* @param GPIO_PinSource: spec