Files
new_f_3/Doc/01.例程功能说明.txt
刘正航 609eb878d1 New
2026-04-16 16:55:01 +08:00

75 lines
2.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
*********************************************************************************************************
*
* 【安富莱】STM32-V4 开发板-例程功能说明
*
* 例程名称 : V4-005_无源蜂鸣器例程硬件PWM
*
* 推荐将编辑器的缩进参数和TAB设置为4 来阅读本文件
*
*********************************************************************************************************
*/
【1】例程简介
本例子演示如何驱动蜂鸣器。STM32-V4开发板安装的蜂鸣器为无源蜂鸣器使用PA8引脚。
主程序实现功能:
1 按K1K2K3键分别发出不同的蜂鸣音
2 通过摇杆左右键可以调节蜂鸣器频率。
操作提示:
1. K1键 - 按键提示音(固定频率1.5KHz)
2. K2键 - 急促鸣叫10次
3. K3键 - 长鸣3次
4. 摇杆左键 - 蜂鸣器频率 - 100Hz
5. 摇杆右键 - 蜂鸣器频率 + 100Hz
源代码说明:
1bsp_beep.c 是蜂鸣器驱动文件。通过宏切换是有源蜂鸣器还是无源蜂鸣器。 无源蜂鸣器需要使用TIM硬件输出
PWM波形来驱动。
//#define BEEP_HAVE_POWER /* 定义此行表示有源蜂鸣器直接通过GPIO驱动, 无需PWM */
2bsp_tim_pwm.c 是定时器PWM驱动文件。SetTIMOutPWM()函数配置GPIO为输出PWM状态。
void bsp_SetTIMOutPWM(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, TIM_TypeDef* TIMx, uint8_t _ucChannel,
uint32_t _ulFreq, uint32_t _ulDutyCycle);
3bsp.c 中需要每隔10ms调用一次BEEP_Pro()函数,该函数用来控制蜂鸣次数和时长。
void bsp_RunPer10ms(void)
{
bsp_KeyScan(); /* 每10ms扫描按键一次 */
BEEP_Pro(); /* 蜂鸣器定时处理 */
}
4 BEEP_KeyTone(); 是发按键提示音的函数频率固定1.5KHz。
BEEP_Start()启动蜂鸣器开始鸣叫。该函数是非阻塞的10ms定时中断服务程序会控制PWM的启动和停止。
BEEP_Stop() 立即终止鸣叫。
【2】执行结果
使用USB转RS232线连接开发板的RS232接口到计算机的USB接口。运行 SecureCRT 软件。
下面是串口界面执行结果:
*************************************************************
* 例程名称 : V4-005_无源蜂鸣器例程硬件PWM
* 例程版本 : 1.0
* 发布日期 : 2015-08-30
* 固件库版本 : 3.6.1
* CMSIS版本 : 3.01
*
* QQ : 1295744630
* Email : armfly@qq.com
* Copyright www.armfly.com 安富莱电子
*************************************************************
操作提示:
1. K1键 - 按键提示音(固定频率1.5KHz)
2. K2键 - 急促鸣叫10次
3. K3键 - 长鸣3次
4. 摇杆左键 - 蜂鸣器频率 - 100Hz
5. 摇杆右键 - 蜂鸣器频率 + 100Hz
蜂鸣器频率 = 1500Hz
【3】修改记录
2015-08-30 V1.0 首版