当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]该项目使用RT-Spark开发板(STM32F407ZGT6)进行开发。在绿色LED亮起前,会随机生成1到3秒之间的间隔时间。一旦灯亮起,用户应尽快按下按钮。微控制器会计算从按钮中断发生前执行的循环次数,这可作为用户反应速度的相对衡量指标。

该项目使用RT-Spark开发板(STM32F407ZGT6)进行开发。在绿色LED亮起前,会随机生成1到3秒之间的间隔时间。一旦灯亮起,用户应尽快按下按钮。微控制器会计算从按钮中断发生前执行的循环次数,这可作为用户反应速度的相对衡量指标。

STM32CubeMX

步骤1:在STM32CubeMX中配置硬件

1. 打开 STM32CubeMX,然后点击“文件”,再选择“新建项目”。

2. 点击“访问”进入MCU选择器,搜索并选择STM32F407ZGT6微控制器。

3. 在左侧菜单中,展开“系统核心”,然后点击“SYS 更改调试接口为串行线”,这对后续刷机非常重要。

4. 配置LED:在芯片图中,左键单击引脚PF11,选择GPIO_Output。右键该引脚,选择“输入用户标签”,并将其命名为GREEN_LED。

5. 配置按钮:左键点击 PC00 引脚(对应 RT-Sparkpark 板上的 LEFT LEFT LEFT 按钮),然后选择 GPIO_EXTI。右键单击该引脚,选择“输入用户标签”,并将其命名为 USER_SWITCH。

6. 设置中断触发器:进入系统核心 > GPIO,点击 USER_SWITCH_SWITCH 引脚(PC0),并将 GPIO GPIO 模式更改为外部中断模式,并启用下降沿检测。

7. 启用中断:进入系统核心 > NVIC,勾选您开关对应的 EXTI EXTI EXTI 线旁边的“启用”框(EXTI line0 中断)。

8. 转到项目管理器选项卡,为项目命名,将工具链/IDE更改为STM32CubeIDE,然后点击生成代码。

STM32CubeIDEIDE 安装

步骤2:将项目导入STM32CubeIDE

1. 在项目资源管理器中,找到你的核心文件夹。你需要在此处创建四个新文件来处理我们的自定义函数。

2. 右键单击 Inc 文件夹,选择“新建”>“头文件”,然后创建 leds.h 和 delay.h。

3. 右键单击 Src 文件夹,选择“新建”>“源文件”,然后创建 leds.c 和 delay.c。

4. 将相应的支持模块代码(位于代码部分)粘贴到以下四个文件中并保存。

步骤3:编写核心固件逻辑

1. 打开位于 Src 文件夹中的 main.c 文件。

2. 在文件顶部附近,找到 /* USER CODE BEGIN Includes */ */ */ 部分,并将您的自定义库与随机数生成的标准库一并包含进去:

3. 向下滚动到 /* USER CODE BEGIN PV */,并声明用于跟踪中断状态和最终得分的全局变量:

4. 滚动到文件底部的 /* USER CODE BEGIN 4 */ */ 处,编写回调函数。这会告诉微控制器在按钮被按下时,立即将我们的标志变量设置为 '1'。

5. 最后,在你的 int main(void)) 函数中找到无限的 while (1)) 循环。将核心游戏逻辑(位于代码部分提供的内容)粘贴到 /* USER CODE BEGIN 3 */ */ */ 块内。

步骤4:构建、刷入并运行

1. 点击顶部工具栏中的锤子图标来构建项目。确保控制台显示 0 个错误。

2. 将 RT-Sparkpark 板插入电脑,然后点击“调试”图标(Bug)将代码烧录到微控制器上。

3. 打开调试视图后,找到“实时表达式”选项卡(或通过“窗口”>“显示视图”>“实时表达式”打开)。

4. 点击“添加新表达式”,然后输入 final_reaction_time。

5. 点击“恢复”图标(绿色播放按钮)以开始代码。

6. 开始游戏吧!请将目光集中在棋盘上的白色方块上。当它变成绿色时,尽快按下左键。查看电脑屏幕,实时看到你的反应得分更新!

本文编译自hackster.io

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