[STM32U5] 【NUCLEO-U5A5ZJ-Q测评】2.按钮输入输出与串口打印

[复制链接]
1490|4
 楼主| Tristan_C 发表于 2023-11-22 00:26 | 显示全部楼层 |阅读模式
本帖最后由 Tristan_C 于 2023-11-22 00:33 编辑

#申请原创# 按钮输入输出与串口打印
基于前面的demo例程,我们利用如下的三个GPIO驱动了LED
197bfa4f42f55000a9ee5deac041d4d6
3f50505d9405c9d5b0400efc6c99f830
接下来可以继续添加一下板载的按钮和串口打印功能。
其中板载按钮留了一个,在PC13口上,如下
bc602efdef9b6b848b965184a91600d7
而板载的串口则留在了PA9和PA10两个GPIO上
226579324afe475cf46419812d63d1eb
根据ST开发板创建的工程已经定义了这个按钮的GPIO
2f14e44d197869b0089f9d57deadb8ee
且已经定义为没有上下拉的上升沿中断方式,确实是非常的方便了。我们在stm32u5xx_it.c文件中增加EXIT的中断处理,注意也需要在USER CODE中间添加,避免覆盖。
0c43c5b49d766f16781ef723cd5efe5c
4c8f3ed29197c0c9f424ed77e101a6ca
在函数MX_GPIO_Init中增加GPIO EXIT中断的配置
d23d84ecde951429e8382c48392cb925
在中断处理中,将按钮标志位 btn_flag 取反。
979b2bbb2786f5b3449e37ca6e070d82
而在main函数的主循环中,就增加一个按钮中断标志的处理即可。
9d1f61605889f76ff21f7dafb745038d
编译下载运行
df857b523f9f9dcbcbafd46f88f2104f
接下去增加串口及其打印。前面已经知道串口初始化。
7055eb91a80a98eb51ded588a7f8bfa3
下面增加做一个打印函数的重映射功能。
首先添加一下响应的头文件
433673a0e5dfdd427ccac8a7a75f21f6
然后增加一小段重映射代码
2505fd0e3eac3bea383d41d27ed4e29d
然后在main函数中增加如下两处测试代码。
71561a070c6dc73bd1fadd3f71e5a4b8
编译下载运行
a7745f6de0ff63be56767f444479c88d
可以看到启动后串口输出打印信息到串口助手上
2b72e3215316b5b3e5155dc7f60b63aa
而按下一次按钮,则会打印Flash Once信息
48a965b6b10bc212120727cbc9f2722a

代码如附件

还可以看视频效果



tool_demo.rar

7.79 MB, 下载次数: 3

单片小菜 发表于 2023-12-11 18:37 | 显示全部楼层
这个按键如何进行去抖操作呢?
sasdfji001 发表于 2023-12-11 18:55 | 显示全部楼层
这个有点大材小用的感觉,这么好的芯片。
 楼主| Tristan_C 发表于 2023-12-11 20:54 | 显示全部楼层
sasdfji001 发表于 2023-12-11 18:55
这个有点大材小用的感觉,这么好的芯片。

哈哈,确实,不过只是测试了一下外设模块
 楼主| Tristan_C 发表于 2023-12-11 20:55 | 显示全部楼层
单片小菜 发表于 2023-12-11 18:37
这个按键如何进行去抖操作呢?

测试没做去抖,可以硬件加个电容或者软件做个延时机制应该可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

117

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部