假如一个引脚有串口、IIC、定时器的功能那么怎么选择其中IIC作为引脚功能来用。
还有如果我要使用的IIC功能只有这个引脚有但是这个引脚又被串口占用,是不是只能将IIC功能映射到其他角上去。具体怎么映射?
求大佬解答
比如我配置引脚为复用功能,那他有三个复用功能我怎么知道是复用到哪个去? 是不是还要开启相应的外设的时钟。
还有能具体讲一下如何映射引脚功能么?好像时钟开启,引脚映射有什么顺序要求的
复用可以参考下面这个,配置复用寄存器就行了。
//GPIO复用设置
//GPIOx:GPIOA~GPIOI.
//BITx:0~15,代表IO引脚编号.
//AFx:0~15,代表AF0~AF15.
//AF0~15设置情况(这里仅是列出常用的,详细的请见407数据手册,56页Table 7):
//AF0:MCO/SWD/SWCLK/RTC AF1:TIM1/TIM2; AF2:TIM3~5; AF3:TIM8~11
//AF4:I2C1~I2C3; AF5:SPI1/SPI2; AF6:SPI3; AF7:USART1~3;
//AF8:USART4~6; AF9;CAN1/CAN2/TIM12~14 AF10:USB_OTG/USB_HS AF11:ETH
//AF12:FSMC/SDIO/OTG/HS AF13:DCIM AF14: AF15:EVENTOUT
void GPIO_AF_Set(GPIO_TypeDef* GPIOx,u8 BITx,u8 AFx)
{
GPIOx->AFR[BITx>>3]&=~(0X0FAFR[BITx>>3]|=(u32)AFx<<((BITx&0X07)*4);
}