这个函数是什么意思 谁能详细说一下

一对二加王炸 2017-09-01 09:08:25
...全文
1627 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolwriter 2017-09-06
  • 打赏
  • 举报
回复
管脚复用 函数原形为
void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)
函数解释:改变指定管脚的映射关系。即配置指定管脚的复用功能。 函数参数说明:GPIOx:gpio的分组/gpio端口;GPIO_PinSource:具体要配置成复用功能的管脚(如GPIO_Pin_0 GPIO_Pin_1这样的宏定义);GPIO_AF:选择该管脚要使用的复用功能。有如下配置:(注意:复用功能的配置要和实际管脚支持的复用功能匹配) GPIO_AF_RTC_50Hz: Connect RTC_50Hz pin toAF0 (default after reset) GPIO_AF_MCO: Connect MCO pin (MCO1 and MCO2)to AF0 (default after reset) GPIO_AF_TAMPER: Connect TAMPER pins(TAMPER_1 and TAMPER_2) to AF0 (default after reset) GPIO_AF_SWJ: Connect SWJ pins (SWD andJTAG)to AF0 (default after reset) GPIO_AF_TRACE: Connect TRACE pins to AF0(default after reset) GPIO_AF_TIM1: Connect TIM1 pins to AF1 GPIO_AF_TIM2: Connect TIM2 pins to AF1 GPIO_AF_TIM3: Connect TIM3 pins to AF2 GPIO_AF_TIM4: Connect TIM4 pins to AF2 GPIO_AF_TIM5: Connect TIM5 pins to AF2 GPIO_AF_TIM8: Connect TIM8 pins to AF3 GPIO_AF_TIM9: Connect TIM9 pins to AF3 GPIO_AF_TIM10: Connect TIM10 pins to AF3 GPIO_AF_TIM11: Connect TIM11 pins to AF3 GPIO_AF_I2C1: Connect I2C1 pins to AF4 GPIO_AF_I2C2: Connect I2C2 pins to AF4 GPIO_AF_I2C3: Connect I2C3 pins to AF4 GPIO_AF_SPI1: Connect SPI1 pins to AF5 GPIO_AF_SPI2: Connect SPI2/I2S2 pins to AF5 GPIO_AF_SPI4: Connect SPI4 pins to AF5 GPIO_AF_SPI5: Connect SPI5 pins to AF5 GPIO_AF_SPI6: Connect SPI6 pins to AF5 GPIO_AF_SAI1: Connect SAI1 pins to AF6 forSTM32F42xxx/43xxx devices. GPIO_AF_SPI3: Connect SPI3/I2S3 pins to AF6 GPIO_AF_I2S3ext: Connect I2S3ext pins toAF7 GPIO_AF_USART1: Connect USART1 pins to AF7 GPIO_AF_USART2: Connect USART2 pins to AF7 GPIO_AF_USART3: Connect USART3 pins to AF7 GPIO_AF_UART4: Connect UART4 pins to AF8 GPIO_AF_UART5: Connect UART5 pins to AF8 GPIO_AF_USART6: Connect USART6 pins to AF8 GPIO_AF_UART7: Connect UART7 pins to AF8 GPIO_AF_UART8: Connect UART8 pins to AF8 GPIO_AF_CAN1: Connect CAN1 pins to AF9 GPIO_AF_CAN2: Connect CAN2 pins to AF9 GPIO_AF_TIM12: Connect TIM12 pins to AF9 GPIO_AF_TIM13: Connect TIM13 pins to AF9 GPIO_AF_TIM14: Connect TIM14 pins to AF9 GPIO_AF_OTG_FS: Connect OTG_FS pins to AF10 GPIO_AF_OTG_HS: Connect OTG_HS pins to AF10 GPIO_AF_ETH: Connect ETHERNET pins to AF11 GPIO_AF_FSMC: Connect FSMC pins to AF12 GPIO_AF_FMC: Connect FMC pins to AF12 forSTM32F42xxx/43xxx devices. GPIO_AF_OTG_HS_FS: Connect OTG HS(configured in FS) pins to AF12 GPIO_AF_SDIO: Connect SDIO pins to AF12 GPIO_AF_DCMI: Connect DCMI pins to AF13 GPIO_AF_LTDC: Connect LTDC pins to AF14 forSTM32F429xx/439xx devices. GPIO_AF_EVENTOUT: Connect EVENTOUT pins toAF15代码示例: 示例一:把gpioa6配置成输出管脚,并配置成高电平 GPIO_InitTypeDefGPIO_InitStruct; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); GPIO_InitStruct.GPIO_Pin= GPIO_Pin_6; GPIO_InitStruct.GPIO_Mode= GPIO_Mode_OUT; GPIO_InitStruct.GPIO_PuPd= GPIO_PuPd_UP; GPIO_Init(GPIOA,&GPIO_InitStruct); GPIO_SetBits(GPIOA,GPIO_Pin_6); 示例二:把gpioe4配置成输入 GPIO_InitTypeDefGPIO_InitStruct; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE); GPIO_InitStruct.GPIO_Pin= GPIO_Pin_4; GPIO_InitStruct.GPIO_Mode= GPIO_Mode_IN; GPIO_InitStruct.GPIO_PuPd= GPIO_PuPd_UP; GPIO_Init(GPIOE,&GPIO_InitStruct); 示例三:配置复用功能 PA9 PA10 配置成串口1的收发接口 GPIO_InitTypeDef GPIO_InitStructure; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//使能GPIOA时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//使能USART1时钟 //串口1对应引脚复用映射 GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);//GPIOA9复用为USART1 GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1);//GPIOA10复用为USART1 //USART1端口配置 GPIO_InitStructure.GPIO_Pin= GPIO_Pin_9 | GPIO_Pin_10; //GPIOA9与GPIOA10 GPIO_InitStructure.GPIO_Mode= GPIO_Mode_AF;//复用功能 GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz; //速度50MHz GPIO_InitStructure.GPIO_OType= GPIO_OType_PP; //推挽复用输出 GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_UP; //上拉 GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化PA9,PA10
tianxj001 2017-09-01
  • 打赏
  • 举报
回复
路下面,将PA7改为AF2映射的功能。
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_7;
GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_2);
备用功能配置,通过AF选择管脚备用功能
91program 2017-09-01
  • 打赏
  • 举报
回复
函数的功能很简单,就是一些位操作 但具体的功能,需要 LZ 你从原理图和 IO 的说明来进一步分析。

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧