/*
*********************************************************************************************************
*
*	                          【安富莱】STM32-V4 开发板-例程功能说明
*
*	例程名称       : V4-005_无源蜂鸣器例程（硬件PWM）
*
*	推荐将编辑器的缩进参数和TAB设置为4 来阅读本文件
*
*********************************************************************************************************
*/

【1】例程简介
	
	本例子演示如何驱动蜂鸣器。STM32-V4开发板安装的蜂鸣器为无源蜂鸣器，使用PA8引脚。
		
	主程序实现功能：
		（1） 按K1，K2，K3键分别发出不同的蜂鸣音
		（2） 通过摇杆左右键可以调节蜂鸣器频率。
	操作提示:
	1. K1键 - 按键提示音(固定频率1.5KHz)
	2. K2键 - 急促鸣叫10次
	3. K3键 - 长鸣3次
	4. 摇杆左键 - 蜂鸣器频率 - 100Hz
	5. 摇杆右键 - 蜂鸣器频率 + 100Hz
	
	源代码说明:
	（1）bsp_beep.c 是蜂鸣器驱动文件。通过宏切换是有源蜂鸣器还是无源蜂鸣器。 无源蜂鸣器需要使用TIM硬件输出
		PWM波形来驱动。
		//#define BEEP_HAVE_POWER		/* 定义此行表示有源蜂鸣器，直接通过GPIO驱动, 无需PWM */
	
	（2）bsp_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);
			 
	（3）bsp.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 首版

