在研究STM32中文参考手册的时候发现时钟的重映射功能,如下图:因此修改原子的PWM输出实验,增加TIM3完全重映射的命令(颜色区),如下面程序,但PC7没有输出PWM,大伙帮看看,谢谢。
程序段,
void PWM_Init_Map(u16 arr,u16 psc)
{
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1; //TIM3时钟使能
AFIO->MAPR|=3<<10; //把TIM3的CH1,CH2,CH3,CH4,分别重映射到PC6,PC7,PC8,PC9
GPIOC->CRH&=0X0FFFFFFF;//PC7
GPIOC->CRH|=0XB0000000;//复用输出
GPIOC->ODR|=1<<7;//PC7上拉
TIM3->ARR=arr;//设定计数器自动重装值
TIM3-> SC=psc;//预分频器不分频
TIM3->CCMR1|=7<<12; //CH2 PWM2模式
TIM3->CCMR1|=1<<11; //CH2预装载使能
TIM3->CCER|=1<<4; //OC2 输出使能
// TIM3->CR1=0x8000; //ARPE使能 这里原子搞错了,应该是下面这句,用缓冲与不用缓冲在精度上是有差别的。
TIM3->CR1=0x0080; //ARPE使能
TIM3->CR1|=0x01; //使能定时器3
}
|