資源描述:
《STM32的PWM波形輸出例程.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、STM32的PWM波形輸出例程調(diào)試芯片:STM32F103C8T6外部晶振:8MHz功能介紹:使用Timer3實現(xiàn)兩路(可四路)PWM波形的輸出代碼如下:??初始化:系統(tǒng)時鐘初始化,GPIO端口初始化,Timer初始化系統(tǒng)時鐘初始化:1./*?配置系統(tǒng)時鐘為72M?*/?2.SystemInit();?GPIO端口初始化:1./****************************************************************2.?*?函數(shù)名:void?GPIO_Config(void)?
2、3.?*?描述??:配置復(fù)用輸出PWM時用到的I/O?4.?*?輸入??:無?5.?*?輸出??:無?6.?*?調(diào)用??:main()調(diào)用?7.?***************************************************************/?8.void?GPIO_Config(void)??9.{?10.??GPIO_InitTypeDef?GPIO_InitStructure;?11.?12.??/*?GPIOA?and?GPIOB?clock?enable?*/?13.??RC
3、C_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);??14.?15.??/*GPIOA?Configuration:?TIM3?channel?1?and?2?as?alternate?function?push-pull?*/?16.??GPIO_InitStructure.GPIO_Pin?=??GPIO_Pin_6?
4、?GPIO_Pin_7;?17.??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP;????????
5、???//?復(fù)用推挽輸出?18.??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;?19.??GPIO_Init(GPIOA,?&GPIO_InitStructure);?20.}?Timer初始化:1./****************************************************************?1.?*?函數(shù)名:void?TIM3_Config(void)??2.?*?描述??:配置TIM3輸出的PWM信號的模式?3.?*??
6、????CH1:輸出?T=2.5ms(f=1/2.5ms=400Hz)??D=0.6的PWM波(高電平在前,低電平在后)?4.?*??????CH2:輸出?T=2.5ms(f=1/2.5ms=400Hz)??D=0.4的PWM波(高電平在后,低電平在前)?5.?*??????步驟一:通過T和TIMxCLK的時鐘源確定TIM_Period和TIM_Prescaler??6.?*??????????T=(TIM_Period+1)*(TIM_Prescaler+1)/TIMxCLK=2.5ms??7.?*????????
7、??因為?TIM_Period<65535,所以?TIM_Prescaler>1,即?TIM_Prescaler=2?8.?*??????????所以?TIM_Period=59999=0xEA5F?9.?*??????步驟二:根據(jù)TIM_Period的值,高低電平的先后D,確定CCR和TIM_OCPolarity?10.?*??????????CH1:因為D=0.6,先高后低;?11.?*??????????????所以CCR1=(TIM_Period+1)*?D=36000;TIM_OCPolarity=TIM_
8、OCPolarity_High?12.?*??????????CH2:因為D=0.4,先高后低;?13.?*??????????????所以CCR1=(TIM_Period+1)*?(1-D)=36000;TIM_OCPolarity=TIM_OCPolarity_Low?14.?*??????步驟三:基礎(chǔ)寄存器初始化?15.?*??????步驟四:通道寄存器初始化?16.?*??????步驟五:使能TIM3重載寄存器ARR?17.?*??????步驟六:使能TIM3??18.?*?輸入??:無??19.?*?輸出?
9、?:無??20.?*?調(diào)用??:main()調(diào)用??21.?***************************************************************/??22.void?TIM3_Config(void)??23.{??24.????TIM_TimeBaseInitTypeDef??TIM_TimeBase