2025-11-08 05:40:26
接蜂鸣器到GPIOD12,设为推挽输出,拉高电平响,拉低不响。用定时器1的PWM模式,设1kHz频率,占空比50%。写代码时先初始化GPIO和定时器,再让定时器中断每1ms翻转一次引脚。
因蜂鸣器需持续电流,推挽模式能稳定供电,STM32F103的GPIO最大40mA,够用。 toggling频率建议1-2kHz,太慢会抖动,太快可能烧坏。查手册发现GPIO的上升时间最小10ns,下降时间也差不多,所以1ms间隔刚好。蜂鸣器额定电流20mA,占空比50%时平均电流10mA,安全范围内。代码里用if语句判断是否要响,比如按键按下就开启定时器,松开就关闭。
模拟效果:
STM32F103,蜂鸣器控制
接蜂鸣器到GPIOD12设为推挽输出拉高响拉低不响用定时器1的PWM模式设1kHz频率占空比50写代码先初始化GPIO和定时器再让定时器中断每1ms翻转一次引脚因蜂鸣器需持续电流推挽模式能稳定供电STM32F103的GPIO最大40mA够用 toggling频率建议1-2kHz太慢会抖动太快可能烧坏查手册发现GPIO的上升时间最小10ns下降时间也差不多所以1ms间隔刚好蜂鸣器额定电流20mA占空比50%时平均电流10mA安全范围内代码里用if语句判断是否要响比如按键按下就开启定时器松开就关闭
本题链接: