- 关于MX的基本配置
有很多建工程的博客可以参考
下面是对无源蜂鸣器进行的配置
这个TIM3_CHANNEL3对应我所用的引脚PB0
对于有源蜂鸣器来说我们只需要给他高低引脚就可以对他进行开关
以下是对有源蜂鸣器的配置 - 工程生成
分别生成两个工程,然后以无源为主进行代码的编辑
将以下有源的代码复制到无源的工程上,然后进行.h文件的函数添加void BEEP_GPIO_Init(void);并在main文件初始化中添加函数void BEEP_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); /*Configure GPIO pin : PtPin */ GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); }
- 宏定义的编辑
#define Beep_Switch 0 //1:无源蜂鸣器 #if Beep_Switch #define BEEP_PWMON() HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3) #define BEEP_PWMOFF() HAL_TIM_PWM_Stop(&htim3,TIM_CHANNEL_3) #else #define BEEP_PWMON() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET) #define BEEP_PWMOFF() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); #endif
在main中进行切换有源无源的初始化处理
#if Beep_Switch HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3); /*开启通道1的PWM*/ __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_3,227); #else BEEP_GPIO_Init(); #endif
Stm32CubeMX 有源无源蜂鸣器的配置
于 2024-05-29 15:32:43 首次发布