STM32f103ZET6 TIM8输出PWM波形

Posted 一世离殇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32f103ZET6 TIM8输出PWM波形相关的知识,希望对你有一定的参考价值。

定时器8属于高级定时器,只存在于大容量产品的103系列中,定时器8输出PWM波形时与通用定时器2、3、4、5不同,必须同时开启主输出(TIM8->BDTR|=0x8000;)才能产生PWM波,其配置如下:

 1 /*********************************************
 2     函数名称:void TIM4_PWM_Init(u16 arr,u16 psc)
 3     功        能:通用TIM4 CH1(PB6) CH2(PB7)PWM输出初始化
 4     入        参:arr:自动重装值。
 5                         psc:时钟预分频数
 6     返        回:无
 7 【说明】Frq = 72Mhz / ( psc + 1 ) / ( arr + 1 )
 8 *********************************************/
 9 void TIM4_PWM_Init(u16 arr,u16 psc)
10 {
11     RCC->APB1ENR|=1<<2;         //TIM4时钟使能    
12     RCC->APB2ENR|=1<<3;        //使能PORTB时钟    
13            
14     GPIOB->CRL&=0X00FFFFFF;    //PB6 7 输出
15     GPIOB->CRL|=0XBB000000;    //复用功能输出       
16  
17     TIM4->ARR=arr;                //设定计数器自动重装值 
18     TIM4->PSC=psc;                //预分频器分频设置
19     
20     TIM4->CCMR1|=6<<4;      //CH1 PWM1模式
21                                                 //6: PWM1模式, 正脉冲
22                                                 //7: PWM2模式, 负脉冲
23     TIM4->CCMR1|=1<<3;         //CH1 预装载使能       
24     TIM4->CCER|=1<<0;       //OC1 输出使能       
25     
26     TIM4->CCMR1|=6<<12;      //CH2 PWM1模式
27     TIM4->CCMR1|=1<<11;     //CH2 预装载使能       
28     TIM4->CCER|=1<<4;       //OC2 输出使能
29 
30     TIM4->CR1=0x0080;       //ARPE使能 
31     TIM4->CR1|=0x01;        //使能定时器4
32 }
33 /*********************************************
34     函数名称:TIM8_PWM_Init
35     功        能:通用TIM8 CH1(PC6) CH2(PC7)PWM输出初始化
36     入        参:arr:自动重装值。
37                         psc:时钟预分频数
38     返        回:无
39 【说明】Frq = 72Mhz / ( psc + 1 ) / ( arr + 1 )
40 *********************************************/
41 void TIM8_PWM_Init(u16 arr,u16 psc)
42 {
43     RCC->APB2ENR|=1<<13;         //TIM8时钟使能
44     RCC->APB2ENR|=1<<4;        //使能PORTC时钟    
45            
46     GPIOC->CRL&=0X00FFFFFF;    //PC6 7 输出
47     GPIOC->CRL|=0XBB000000;    //复用功能输出       
48  
49     TIM8->ARR=arr;                //设定计数器自动重装值 
50     TIM8->PSC=psc;                //预分频器分频设置
51     
52     TIM8->CCMR1|=6<<4;      //CH1 PWM1模式
53                                                 //6: PWM1模式, 正脉冲
54                                                 //7: PWM2模式, 负脉冲
55     TIM8->CCMR1|=1<<3;         //CH1 预装载使能       
56     TIM8->CCER|=1<<0;       //OC1 输出使能       
57     
58     TIM8->CCMR1|=6<<12;      //CH2 PWM1模式
59     TIM8->CCMR1|=1<<11;     //CH2 预装载使能       
60     TIM8->CCER|=1<<4;       //OC2 输出使能
61 
62     TIM8->CR1=0x0080;       //ARPE使能
63     TIM8->BDTR|=0x8000;        //主输出使能
64     TIM8->CR1|=0x01;        //使能定时器8
65 }

 

以上是关于STM32f103ZET6 TIM8输出PWM波形的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103ZET6 用定时器级联方式输出特定数目的PWM(转载)

基于霸道秉火的STM32F103ZET6嵌入式开发之------基于定时TIM3的PWM实验

STM32F103定时器最多可以输出多少路PWM波

STM32F103五分钟入门系列(十五)输出比较(PWM输出)+各类测试

STM32F103 PWM输出实验(HAL库)

STM32F103五分钟入门系列(十五)输入捕获(精雕细琢-.-)