求助各位朋友怎样赋值AFRL ,AFRH端口复用寄存器。

2019-07-20 17:41发布

求助各位朋友怎样赋值AFRL ,AFRH端口复用寄存器,类似GPIOB->MODER   = 5这样的操作,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-07-20 19:00
[mw_shl_code=c,true]//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   AF13CIM                 AF14:                     AF15:EVENTOUT
void GPIO_AF_Set(GPIO_TypeDef* GPIOx,u8 BITx,u8 AFx)
{  
        GPIOx->AFR[BITx>>3]&=~(0X0F<<((BITx&0X07)*4));
        GPIOx->AFR[BITx>>3]|=(u32)AFx<<((BITx&0X07)*4);
} [/mw_shl_code]
Ly271700458
2楼-- · 2019-07-20 20:58
正点原子 发表于 2016-5-2 21:29
[mw_shl_code=c,true]//GPIO复用设置
//GPIOx:GPIOA~GPIOI.
//BITx:0~15,代表IO引脚编号.

GPIOx->AFR[BITx>>3]&=~(0X0F<<((BITx&0X07)*4));
    GPIOx->AFR[BITx>>3]|=(u32)AFx<<((BITx&0X07)*4);
  运算顺序是怎么样的呢?

一周热门 更多>