資源描述:
《嵌入式pwm控制電路》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、嵌入式作業(yè)院系:班級:姓名:學號:PWM控制電路一、要求:PWM控制電路,要求能夠輸出8路任意頻率,任意占空比的PWM波。二、流程圖:開始系統(tǒng)初始化引腳初始化定時器參數(shù)計算定時器設置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){}}經(jīng)查閱資料得知,用STM32定時器的PWM模式只能在4個通道上產(chǎn)生頻率相同但占空比不同的PWM波,要想輸出PWM頻率可調,占空比可調,必須得使用比較輸出模式。使用定時器的輸出比較觸發(fā)模式,通過改變各通道比較寄存器(如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