STM32的引腳可設(shè)置為可設(shè)置為:普通IO功能、復(fù)用功能、重映射功能。普通IO功能、復(fù)用功能用得比較多,這里就不敘述了。重映射功能,用的場合相對而言要少點(diǎn)。因?yàn)閷?shí)在用定時(shí)器時(shí)在用到重映象,所以以F103的TIM3輸出PWM波為例。
這是TIM3的復(fù)用功能映象表,可以看到?jīng)]有重映象時(shí)TIM3的四個(gè)通道所對應(yīng)的引腳為PA6、PA7、PB0、PB1;使用部分重映象時(shí)為PB4、PB5、PB0、PB1,因?yàn)橹桓淖兞瞬糠忠_,所以叫部分重映象;使用完全重映象時(shí)為PC6、PC7、PC8、PC9,這全部的引腳都改了,所以叫完全重映象。
我這里要把TIM3_CH1、TIM3_CH1重映象到PC6、PC7。就要用到函數(shù)
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);
這個(gè)函數(shù)的參數(shù)GPIO_FullRemap_TIM3,是設(shè)置TIM3完全映射,當(dāng)時(shí)沒注意選了GPIO_PartialRemap_TIM3,結(jié)果調(diào)了半天沒有波形輸出。一定要注意。
具體配置過程如下:
void TIM3_PWM_Init(u16 arr,u16 psc)
{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;
TIM_OCInitTypeDefTIM_OCInitStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);//使能定時(shí)器3的時(shí)鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);//使能外設(shè)時(shí)鐘使能
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);//TIM選擇全復(fù)用功能使能