打印
[开发板与模块]

使用ESK32-30519 触摸按键驱动ESK32-21001 蜂鸣器

[复制链接]
750|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 bestsolution001 于 2022-8-17 17:57 编辑

使用ESK32-30519 触摸按键驱动ESK32-21001 蜂鸣器
ESK32-21001扩展版介绍
1.ESK32-21001是为了ESK32-30xxx系列Starter Kit所设计的进阶扩充底板。

图1 ESK32-21001 PCBA


2.该扩展版的详细资料可以从以下的链接获取。https://www.holtek.com.cn/web/gu ... nheritRedirect=true

  
图2 ESK32-21001使用说明
在链接的底部,会有一个该扩展版的使用手册,里面会有整个扩展版资源的介绍,原理图说明。


3.ESK32-21001具备以下的特性:
  • RS232 连接器
  • 一个唤醒按键,两个普通按键
  • 触摸按键
  • 三个 LED
  • I2C – 可兼容串行接口 EEPROM
  • SPI – 可兼容串行接口 Flash
  • SPI 和 EBI 扩展接口,用于 LCD 显示应用
  • SD 卡插槽 – SPI 模式
  • PWM 输出,用于蜂鸣器驱动
  • 备份电源
  • SWD-20P 调试接口
  • 智能卡连接器
  • CMOS 传感器连接器
  • 多个接口包括 UART、I 2 C、SPI 和 GPIO 功能接口,用于连接不同的模块
  • 音频输入包括麦克风和立体声插口
  • 音频输出包括扬声器连接器和立体声插口

4.将核心板ESK32-30519与ESK32-21001整合。

  
图3 整合板
ESK32-21001蜂鸣器的使用
1.ESK32-30519的介绍与使用请参考https://bbs.21ic.com/icview-3234646-1-1.html
  选择驱动扩展板的无源蜂鸣器,扩展板标识为”Buzzer”。

  
图4 无源蜂鸣器


2.截取扩展板与核心板连接部分的原理图如下:

  
图5 扩展板接口原理图

  
图6 核心板接口原理图
  需要注意的一点是,在编号8的位置上,PC12为驱动蜂鸣器的PIN脚。


3.蜂鸣器的电路接法

  
图7 蜂鸣器原理图
  从原理图中可以看出,只要给蜂鸣器的PIN脚不同的频率的PWM,蜂鸣器就会发出不同声调的声音。


4.根据HOLTEK提供的32位固件库中example下的文件夹,可以通过脚本直接生成例程。例程的功能是让蜂鸣器发出21个不同的声调。例程路径为:
..\example\TM\PWM_Buzzer\MDK_ARMv5。然后选择HT32F54253的工程。直接编译烧录即可。

  
图8 蜂鸣器例程

蜂鸣器根据触控按键编号发出不同的声调
1.需要将蜂鸣器的驱动代码整合到TouchKey中来。在路径..\example\TM\PWM_Buzzer下将驱动文件buzzer_pwm.c与buzzer_pwm.h复制到..\example\TouchKey\TouchKey_LIB下。

  
图9 蜂鸣器的驱动文件


2.将buzzer_pwm.c与buzzer_pwm.h添加到TouchKey工程中。

  
图10 添加到TouchKey工程


3.除此之外,还需要注意的两个地方是:一个是声调频率的声明数组,一个是蜂鸣器驱动的#define。声调声明数组放置在mian.c,驱动的#define放置在ht32_board_config.h中。如下图所示:

  
图11 声调声明数组
  
图12 蜂鸣器驱动#define


4.在buzzer.c中提供三个函数来驱动蜂鸣器。下面给出函数的说明。

项目
说明
函数名称
Buzzer_Init
输入参数
蜂鸣器发声的频率
返回值
Void
说明
初始化蜂鸣器的功能,并且给定一个频率


项目
说明
函数名称
Buzzer_Start
输入参数
uBeeTimes->发声的次数,uFrequency->发声的频率uActive_ms->发声的时间uInActive_ms->不发声的时间
返回值
Void
说明
给定蜂鸣器发声的次数,频率与一个发声周期内的发声与不发声的时间。


项目
说明
函数名称
Buzzer_Start
输入参数
uBeeTimes->发声的次数,uFrequency->发声的频率uActive_ms->发声的时间uInActive_ms->不发声的时间
返回值
Void
说明
给定蜂鸣器发声的次数,频率与一个发声周期内的发声与不发声的时间。


项目
说明
函数名称
Buzzer_IsFinish
输入参数
Void
返回值
1或者0
说明
1->蜂鸣器完成发声的次数
0->蜂鸣器还没有完成发声的次数


5.重写蜂鸣器例程中的Buzzer_PlayTable函数,使得蜂鸣器根据按下的触控按键的编号1~6发出不同的音阶。

  
图13 重写蜂鸣器的发声函数


6.在查询触控按键是否成立的地方调用Buzzer_PlayTable,并且将触控按键编号传给Buzzer_PlayTable。

  
图14 蜂鸣器响应触控按键的频率
至此,实现了蜂鸣器会根据按键编号相应不同的频率。

文章小结
这篇文章用了ESK-30519的两个功能:PWM与触控按键。其中PWM功能是驱动蜂鸣器的,例程为..\example\TM\PWM_Buzzer路径下的工程。触控功能的实现请参考 https://bbs.21ic.com/icview-3234646-1-1.html
本次通过触控按键驱动蜂鸣器,并且蜂鸣器会根据按键编号的1~6发出do、re、mi、fa、sol、la这6个音阶。最终的例程源码路径..\Buzzer+TouchKey\example\TouchKey\TouchKey_LIB\MDK_ARMv5

   Buzzer+Touchkey.zip (36.93 MB)
例程源码

使用特权

评论回复
评论
夜声 2022-9-6 18:39 回复TA
不是周四才开始邮寄吗?你的咋这么快? 

相关帖子

沙发
mmbs| | 2022-9-3 16:58 | 只看该作者
可以配置中断滤波am   

使用特权

评论回复
板凳
mickit| | 2022-9-3 19:46 | 只看该作者
触摸按键怎么增加滤波呢  

使用特权

评论回复
地板
bartonalfred| | 2022-9-3 20:58 | 只看该作者
ht32的芯片种类真多。   

使用特权

评论回复
5
jackcat| | 2022-9-5 15:22 | 只看该作者
ESK32-30519 是什么   

使用特权

评论回复
6
lcr12| | 2022-9-6 09:53 | 只看该作者
触摸按键,蜂鸣器,SD卡功能功能比较强

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

15

帖子

0

粉丝