欢迎来到天天文库
浏览记录
ID:2084533
大小:73.00 KB
页数:6页
时间:2017-11-14
《嵌入式pwm控制电路》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式作业院系:班级:姓名:学号:PWM控制电路一、要求:PWM控制电路,要求能够输出8路任意频率,任意占空比的PWM波。二、流程图:开始系统初始化引脚初始化定时器参数计算定时器设置PWM生成三、具体步骤intmain(void){unsignedchari=0;for(i=0;i<4;i++){Cnt3[i]=0;T3[i]=0;R3[i]=0;Rh3[i]=0;Rl3[i]=0;F3[i]=0;Cnt4[i]=0;T4[i]=0;R4[i]=0;Rh4[i]=0;Rl4[i]=0;F4[i]=0;}//t的范围为(0~65536)
2、T3[0]=450;//F=40KT3[1]=600;//F=30KT3[2]=900;//F=20KT3[3]=1800;//F=10K//F(占空比)的范围为(0~100)F3[0]=40;F3[1]=30;F3[2]=20;F3[3]=10;//t的范围为(0~65536)T4[0]=750;//F=40KT4[1]=600;//F=30KT4[2]=900;//F=20KT4[3]=1400;//F=10K//F(占空比)的范围为(0~100)F4[0]=40;F4[1]=30;F4[2]=20;F4[3]=50;System
3、Init();GPIO_Config();TIM5_Init();/*TIM3PWM波输出初始化,并使能TIM3PWM输出*/TIM5_PWM_Init();TIM4_Init();TIM4_PWM_Init();while(1){}}经查阅资料得知,用STM32定时器的PWM模式只能在4个通道上产生频率相同但占空比不同的PWM波,要想输出PWM频率可调,占空比可调,必须得使用比较输出模式。使用定时器的输出比较触发模式,通过改变各通道比较寄存器(如CCR1)中的值,改变PWM的占空比,在每次各通道匹配中断中改变CCR1的值。1、I/O
4、配置配置TIM3和TIM4的共8个通道所占用的I/O口。voidGPIO_Config(void){GPIO_InitTypeDefGPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3
5、RCC_APB1Periph_TIM4,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA
6、RCC_APB2Periph_GPIOB
7、RCC_APB2Periph_GPIOD,ENABLE);GPIO_InitStructure.G
8、PIO_Pin=GPIO_Pin_6
9、GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0
10、GPIO_Pin_1
11、GPIO_Pin_6
12、GPIO_Pin_7
13、GPIO_Pin_8
14、GPIO_Pin_9;GPIO_Init
15、(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12
16、GPIO_Pin_13
17、GPIO_Pin_14
18、GPIO_Pin_15;GPIO_Init(GPIOD,&GPIO_InitStructure);}2、占空比设置intmain(void){unsignedchari=0;for(i=0;i<4;i++){Cnt3[i]=0;T3[i]=0;R3[i]=0;Rh3[i]=0;Rl3[i]=0;F3[i]=0;Cnt4[i]=0;T4[i]=0;R4[i
19、]=0;Rh4[i]=0;Rl4[i]=0;F4[i]=0;}//t的范围为(0~65536)T3[0]=450;//F=40KT3[1]=600;//F=30KT3[2]=900;//F=20KT3[3]=1800;//F=10K//F(占空比)的范围为(0~100)F3[0]=40;F3[1]=30;F3[2]=20;F3[3]=10;//t的范围为(0~65536)T4[0]=750;//F=40KT4[1]=600;//F=30KT4[2]=900;//F=20KT4[3]=1400;//F=10K//F(占空比)的范围为(0
20、~100)F4[0]=40;F4[1]=30;F4[2]=20;F4[3]=50;3、设置定时器中断voidTIM3_NVIC_Configuration(void){NVIC_InitTypeDefNVIC_InitS
此文档下载收益归作者所有