|
//管脚设置
gpio_init.GPIO_Pin = HAL_BEEP_PIN_NUM;
gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(HAL_BEEP_PIN_GROUP, &gpio_init);
//TIM设置
TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct;
TIM_OCInitTypeDef TIM_OCStruct;
TIM_TimeBaseStructInit(&TIM_TimeBaseStruct);//设置默认值
TIM_TimeBaseInit(BEEP_TIM,&TIM_TimeBaseStruct);//初始化
TIM_OCStructInit(&TIM_OCStruct);
TIM_OCStruct.TIM_OCMode = TIM_OCMode_PWM1;//配置为PWM1模式
TIM_OCStruct.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCStruct.TIM_Pulse = 0;
TIM_OCStruct.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC4Init(BEEP_TIM,&TIM_OCStruct); //使用通道4
TIM_SetCounter(BEEP_TIM, 0);//计数器清零
TIM_PrescalerConfig(BEEP_TIM, 18, TIM_PSCReloadMode_Immediate);
//PCLK1为18MHZ,预分频的值为18,TIM4的计数频率为1MHZ
TIM_Cmd(BEEP_TIM, ENABLE);//开启计数器2
// TIM2 Main Output Enable
TIM_CtrlPWMOutputs(BEEP_TIM, ENABLE);
有问题吗?
我调试的时候,程序跑到管脚设置的地方,蜂鸣器就开始叫了 |
|