Stm32CubeMX 有源无源蜂鸣器的配置

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



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

    这个TIM3_CHANNEL3对应我所用的引脚PB0
    对于有源蜂鸣器来说我们只需要给他高低引脚就可以对他进行开关 
    以下是对有源蜂鸣器的配置
  2. 工程生成
    分别生成两个工程,然后以无源为主进行代码的编辑
    将以下有源的代码复制到无源的工程上,然后进行.h文件的函数添加void BEEP_GPIO_Init(void);并在main文件初始化中添加函数
    void BEEP_GPIO_Init(void)
    {
    
      GPIO_Init
### 使用 STM32CubeMX 配置 PWM 控制蜂鸣器模块 #### 初始化项目并选择微控制器 启动 STM32CubeMX 并创建新项目。在 MCU/MPU Selector 中输入目标设备型号,例如 `STM32F103C8T6` 或其他适用的型号。 #### 配置时钟树 进入 Clock Configuration 页面设置系统时钟频率至所需值。对于大多数应用,默认配置即可满足需求。 #### 设置 GPIO 和定时器功能 转到 Pinout & Configuration 页面,在左侧栏找到 TIMx 定时器(如 TIM3),点击右侧齿轮图标打开其参数编辑窗口[^4]。 - **Mode**: 选择 `PWM Generation CHx (OC)` 模式。 - **Channel**: 根据实际接线情况指定通道号,比如这里假设使用的是 Channel 3 (`CH3`)。 - **Prescaler**: 设定预分频系数以适应期望的载波频率范围;通常情况下可以设为79以便得到大约1KHz 的载波频率。 - **Period(ARR)**: 这决定了周期长度,即最大计数值。如果希望达到上述提到的大约1kHz,则应将其设定为999。 - **Polarity**: 正常极性(`Active High`)适用于大部分场景下的有源或无蜂鸣器。 - **Duty Cycle(CCR)**: 初始占空比可随意填写一个小于 Period 的整数作为默认值,后续可通过软件动态调整此比例来改变声音响度。 完成以上步骤后保存配置文件(.ioc),接着生成初始化代码框架供进一步编程工作之用。 ```c // 示例:通过 HAL 库函数控制 PWM 输出 void Start_Beep(float DutyCycle){ uint32_t temp; /* 将浮点型转换成适合 CCR 寄存器存储的形式 */ temp = (uint32_t)(DutyCycle * (__HAL_TIM_GET_AUTORELOAD(&htim3))); /* 更新比较寄存器中的值从而更改当前占空比 */ __HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_3,temp); } ``` 该片段展示了如何基于之前定义好的定时器句柄对象(htim3)以及所选通道(TIM_CHANNEL_3), 来更新特定时刻下应该产生的高电平持续时间长短,进而影响最终发出的声音特性[^5]。 #### 编译下载程序验证效果 编译工程并将固件烧录到开发板上测试是否能听到预期的提示音效。若有任何异常现象发生,请仔细核对硬件连线状况及各处参数设定准确性直至一切正常为止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值