当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]该项目是一个基于微控制器的C语言编写的音频生成器,配备三个按钮,用户可通过按钮播放声音或调节音高。它作为基本GPIO控制和按钮逻辑的实际演示。

该项目是一个基于微控制器的C语言编写的音频生成器,配备三个按钮,用户可通过按钮播放声音或调节音高。它作为基本GPIO控制和按钮逻辑的实际演示。

第一步:硬件配置

1. 建立共同基础

•将RT-Spark板上的GND引脚连接到面包板的负极(-)排上。

•将RT-Spark板上的5V引脚连接一根跳线,接到面包板的正极(+)线上。

2. 连接开关

将三个按钮放置在面包板中间的沟槽上。

•SW1(频率提升):将一根引脚连接到接地轨道,另一根引脚连接到PA0引脚。

•SW2(播放音调):将一端连接到接地轨道,另一端连接至PA1引脚。

•SW3(频率下调):将一根引脚连接到接地轨道,另一根引脚连接到PA2引脚。

3. 连接压电蜂鸣器

•将压电元件的正极(长边)直接连接到PA8引脚。

•将压电元件的负极(较短的一端)直接连接到你的地线排上。

第二步:CubeMX 配置

•打开 STM32CubeMX,创建一个新项目,并选择 STM32F407ZGT6。

•启用调试:展开系统核心,点击 SYS,并将调试设置为串行线。

•配置输出:左键单击引脚 PA8 并选择 GPIO_Output。

•配置输入:左键点击 PA0、PA1 和 PA2,将每个设置为 GPIO 输入。

•启用上拉:转到系统核心 > GPIO,选择 PA0、PA1 和 PA2。在下方的配置窗口中,将它们的 GPIO 上拉/下拉设置更改为上拉。

•转到项目管理器选项卡,为您的项目命名,确保工具链设置为 STM32CubeIDE,然后生成代码。

第三步:CubeIDE 代码设置

1. 变量与函数原型

向下滚动到 /* USER CODE BEGIN 0 */。我们将在该处放置变量、自定义的DWT微秒延迟,以及读取引脚(PA0、PA1、PA2)并切换压电元件(PA8)的逻辑函数。

2. 启用循环计数器(用户代码开始 2)

为了确保我们的自定义 delay_us 函数能够访问 CPU 的内部时钟周期,我们必须在主循环开始前启用 DWT 计数器。请在您的 main() 函数中找到以下代码:

3. 主循环(用户代码开始 WHILE)

最后,我们需要不断轮询按钮,以便设备能够立即作出反应。将 update_buttons() 函数直接嵌入无限循环中。

第四步:物理测试

•播放声音:按住并长按 SW2,你应该能听到压电蜂鸣器发出的连续方波音。

•扫频:在持续按住 SW2 的同时,反复轻触 SW1。随着微秒延迟时间的减小,你将听到音调逐渐升高。

•降低音调:按住 SW2,多次轻触 SW3。随着周期增加,你将听到音高逐渐降低。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭