一直没有明白STM32的GPIO复用功能,向大家请教一下。
下图是STM32F103的PIN定义。
STM32F103xx 引脚定义
个人理解如下:
上图中关于PIN的功能标识有三类:
1、主功能(复位后的功能)
2、复用默认(默认复用功能)
3、复用重映射(Remap)
以PB0为例,其主功能为PB0,即为普通的GPIO使用。
其复用默认功能有 ADC12_IN8,TIM3_CH3, TIM8_CH2N
复用重映射功能为 TIM1_CH2N
疑问如下:
1、假如我要使用其功能为普通GPIO,此时如果我启动了ADC1和ADC2(时钟使能),但是没有
使用ADC1和ADC2的通道8。此时可以作为普通的GPIO吗。
2、假绍我要使用其复用的ADC12_IN8,但在此同时,我使用了TIM3,但是没有使用TIM3的CH3
输入输出功能,此时有无问题
3、假如使用重映射,是否使能AFIO时钟后使用RemapConfig就行了
以上,希望热心同志解释下。最好能针对性的给出代码了。
谢谢。
此帖出自
小平头技术问答
也就是说,复用功能不是在时钟这一块进行设置与配置的
而是在使用端口时进行的选择。好像这样的设置不合理呀。
我从手册上没有看到对应的详细解释,有没有大大们可以给出详细出处。
在M4中,其对此有修正
//TIM3 CH1 复用端口 PA6
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //选择需初始化管脚
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_TIM3);
其可以指定引脚复用源的。
一周热门 更多>