Stm32CubeMX 有源无源蜂鸣器的配置

  1. 关于MX的基本配置
    有很多建工程的博客可以参考



    下面是对无源蜂鸣器进行的配置

    这个TIM3_CHANNEL3对应我所用的引脚PB0
    对于有源蜂鸣器来说我们只需要给他高低引脚就可以对他进行开关 
    以下是对有源蜂鸣器的配置
  2. 工程生成
    分别生成两个工程,然后以无源为主进行代码的编辑
    将以下有源的代码复制到无源的工程上,然后进行.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);
    
    }
  3. 宏定义的编辑
    #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

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值