摘自:http://blog.csdn.net/lincheng15/article/details/51789093
概括一下:复用就是一个引脚有几个功能,1.做普通IO输入输出 2.其他外设的输入输出(比如I2C,TIM,SPI等等),这就是复用。
重映射就是将引脚功能重新定义到其他引脚,例如PA9是USART1-TX默认的管脚,但是现在PA9用做它用了,那可以将USART1-TX重新映射到PB6,当然这种映射不是随意的想映射到哪个脚就哪个脚,芯片内部已经固定了只能映射到固定的地方
MCU复位后PA8的默认功能是普通IO管脚,我想将它设为TIM1的PWM-CH1复用输出,如下图,通过设置TIM_REMAP[1:0]寄存器,可以实现(没有重映射)(部分重映射)(完全重映射)三种映射。
1 voidTIM1_PWM_Init(u16 arr,u16 psc)2 {3 //
4 RCC->APB2ENR|=1<<11; //开启TIM1定时器
5 GPIOA->CRH&=0XFFFFFFF0; //清除PA8
6 GPIOA->CRH|=0X0000000B; //设置PA8为频率最大50MHZ复用推完输出模式
7
8 TIM1->ARR=arr; //设置计数器自动重装值
9 TIM1->PSC=psc; //预分频器设置
10
11 TIM1->CCMR1|=7<<4; //CH1 PWM2模式
12 TIM1->CCMR1|=1<<3; //CH1预装载