TIM2完全重映射后PWM的CH1和PWM的CH2没有输出,CH3,CH4正常输出了。
代码如下:
RCC->APB2ENR|=1; //开AFIO时钟使能
AFIO->MAPR|=0X04<<24; //关闭JTAG-DP,SW-DP
AFIO->MAPR|=0X03<<8; //全部重定义TIM2
RCC->APB1ENR|=0X0F; //TIM2 3 4 5时钟使能
RCC->APB2ENR|=1<<11; //TIM1时钟使能
RCC->APB2ENR|=1<<13; //TIM8时钟使能
RCC->APB2ENR|=1<<2; //使能PORTA时钟
RCC->APB2ENR|=1<<3; //使能PORTB时钟
RCC->APB2ENR|=1<<4; //使能PORTC时钟
GPIOA->CRL&=0X00FF0000;//PA7 6 PA0-3输出
GPIOA->CRL|=0XBB00BBBB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
GPIOA->ODR|=11001111;//PA7 6 PA0-3上拉
GPIOA->CRH&=0X0FFF0000;//PA15 PA8-11输出
GPIOA->CRH|=0XBF00BBBB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
GPIOA->ODR|=1000111111001111;//PA15 PA6-11 PA0-3上拉
GPIOB->CRL&=0X00FF0F00;//PB0 1 3 6 7输出
GPIOB->CRL|=0XBB00B0BB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
GPIOB->ODR|=11001011;//PB1 PB0上拉
GPIOB->CRH&=0XFFFF0000;//PB8-11输出
GPIOB->CRH|=0X0000BBBB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
GPIOB->ODR|=0X3F<<6;//PB6-11 上拉
GPIOC->CRL&=0X00FFFFFF;//PC6 7输出
GPIOC->CRL|=0XBB000000;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
GPIOC->ODR|=0X03<<6;//PC6 7上拉
GPIOC->CRH&=0XFFFFFF00;//PC8 9输出
GPIOC->CRH|=0X000000BB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
GPIOC->ODR|=0X03;//PB8 9 上拉
TIM8->ARR=arr;//设定计数器自动重装值
TIM8->
SC=psc;//预分频器不分频
TIM5->ARR=arr;//设定计数器自动重装值
TIM5->
SC=psc;//预分频器不分频
TIM4->ARR=arr;//设定计数器自动重装值
TIM4->
SC=psc;//预分频器不分频
TIM3->ARR=arr;//设定计数器自动重装值
TIM3->
SC=psc;//预分频器不分频
TIM2->ARR=arr;//设定计数器自动重装值
TIM2->
SC=psc;//预分频器不分频
TIM1->ARR=arr;//设定计数器自动重装值
TIM1->
SC=psc;//预分频器不分频
TIM1->CCMR1|=0X6464; //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
TIM1->CCMR2|=0X6464; //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能
TIM2->CCMR1|=0X6464; //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
TIM2->CCMR2|=0X6464; //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能
TIM3->CCMR1|=0X6464; //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
TIM3->CCMR2|=0X6464; //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能
TIM4->CCMR1|=0X6464; //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
TIM4->CCMR2|=0X6464; //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能
TIM5->CCMR1|=0X6464; //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
TIM5->CCMR2|=0X6464; //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能
TIM8->CCMR1|=0X6464; //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
TIM8->CCMR2|=0X6464; //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能
TIM1->CCER|=0X1111; //OC1-4 输出使能
TIM2->CCER|=0X1111; //OC1-4 输出使能
TIM3->CCER|=0X1111; //OC1-4 输出使能
TIM4->CCER|=0X1111; //OC1-4 输出使能
TIM5->CCER|=0X1111; //OC1-4 输出使能
TIM8->CCER|=0X1111; //OC1-4 输出使能
TIM1->CR1=0x8000; //ARPE使能
TIM1->CR1|=0x01; //使能定时器1
TIM2->CR1=0x8000; //ARPE使能
TIM2->CR1|=0x01; //使能定时器2
TIM3->CR1=0x8000; //ARPE使能
TIM3->CR1|=0x01; //使能定时器3
TIM4->CR1=0x8000; //ARPE使能
TIM4->CR1|=0x01; //使能定时器4
TIM5->CR1=0x8000; //ARPE使能
TIM5->CR1|=0x01; //使能定时器5
TIM8->CR1=0x8000; //ARPE使能
TIM8->CR1|=0x01; //使能定时器8
目前有两个问题
第一:TIM2完全重映射后PWM的CH1和PWM的CH2没有输出
第二:TIM1和TIM8也没有PWM输出
我用的时103RCT6
---------------------------------
既然3和4有输出,1和2,你可以看看寄存器的数据,和3和4 的对比下.
TIM1和TIM8有个主输出使能,不知道你使能了没有,如果不使能,就无输出的.
完全重映射后PWM的CH1和PWM的CH2没有输出
没有找到原因
TIM1->BDTR|=1<<15; //TIM1开主使能 这里只有TIM1和8用
不加这里,TIM1和TIM8没有PWM输出
现在还有一个问题就是TIM2不重映射是完全正常的。
完全重映射后PWM的CH1和PWM的CH2没有输出
没有找到原因
---------------------------------
那你看看是不是IO弄错了.
---------------------------------
IO没有错,CH1和CH2重映射后是PA15和PB3这两个IO口又刚刚好是JTAG的端口,可是我以关闭了JTAG端口还是不行
RCC->APB2ENR|=1; //开AFIO时钟使能
AFIO->MAPR|=0X04<<24; //关闭JTAG-DP,SW-DP
AFIO->MAPR|=0X03<<8; //全部重定义TIM2
一周热门 更多>