|
发表于 2017-2-19 14:32:58
|
显示全部楼层
主程序:
- systemInit();
- uart3.init(2000000);
- MB.init(11,115200);
- pwm0.init(500);
- pwm1.init(500);
- pwm2.init(500);
- pwm3.init(500);
- pwm4.init(500);
- pwm5.init(500);
- pwm6.init(500);
- pwm7.init(500);
- AD.init();
复制代码
PWM初始化
- pTIMER->init();
- pTIMER->setArr(arr-1);
- pTIMER->setPrescale(scale-1);
- pTIMER->enable();
-
- pGPIO->mode(GPIO_Mode_AF_PP);
- TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
- TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
- TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
- TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;
- pTIMER->setOC(ch, &TIM_OCInitStructure);
- TIM_CtrlPWMOutputs(pTIMER->TIMx, ENABLE);
复制代码
TIMER的初始化
- void TIMER::init(){
- TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
-
- if(TIMx == TIM1){
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
- }
- if(TIMx == TIM2){
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
- }
- if(TIMx == TIM3){
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
- }
- if(TIMx == TIM4){
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
- }
- if(TIMx == TIM5){
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);
- }
-
- TIM_TimeBaseStructure.TIM_Period = 0;
- TIM_TimeBaseStructure.TIM_Prescaler = 0;
- TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
- TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
- TIM_TimeBaseInit(TIMx, &TIM_TimeBaseStructure);
- }
复制代码
我用的C++ 应该也能看明白吧 |
|