打印
[应用相关]

HAL_驱动机械按键

[复制链接]
241|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2023-6-19 11:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1、开发环境。
(1)KeilMDK:V5.38.0.0

(2)STM32CubeMX:V6.8.1

(3)MCU:STM32F407ZGT6

2、机械按键简介
(1)按键内部是机械结构,也就是内部是没有电路的。按键按下内部引脚导通,松开内部断开。

3、实验目的&原理图
3.1、实验目的
(1)通过按键改变LED灯状态,按键检测采用外部中断。

3.2、原理图
(1)按键选择K1按键,K1接PE2。



(2)LED灯选择LED1,LED1接PF9。



4、STM32CubeMX创建工程及配置
4.1、创建工程
(1)打开STM32CubeMX软件。

(2)点击File→NewProject。



(3)Commercial Part Number(商用部件号)处输入MCU型号,然后选择正确的单片机型号,点击Start Project(开始项目)。



(4)配置工程名、工程存放文件等。

点击Project Manager(项目经理)进行如下配置。



点击Code Generator(代码生成器)进行如下配置。



(5)修改中断优先级,按键消抖在中断中要使用HAL_Delay()函数,需要HAL_Delay()函数的优先级比外部中断低。



(6)点击GENERATE CODE生成KeilMDK工程。

4.2、配置时钟及GPIO
(1)HSE、LSE时钟源选择

HSE:高速外部时钟源
LSE:低速外部时钟源
Disable:禁用
BYPASS Clock Source:旁路时钟源
Crystal/Ceramic Resonator :水晶/陶瓷共振器
一般选择水晶陶瓷共振器
旁路时钟源就是由外部给定一个时钟信号,一般用于作为同步时钟。
水晶/陶瓷共振器:指外接晶振,经过内部振荡电路产生时钟。


(2)LED1 GPIO配置



(2)K1 GPIO配置

External interrupt Mode with Resing edge trigger detection:外部中断模式与上升沿触发检测
External interrupt Mode with Falling edge trigger detection:外部中断模式与下降沿触发检测


(3)打开K1按键的外部中断



(4)时钟树配置



(5)配置完需要重新点击GENERATE CODE更新KeilMDK代码。

5、KeilMDK软件编写
5.1、程序编写。
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
        if(GPIO_Pin == K1_Pin)    /*按键被按下,产生下降沿*/
        {
                /*中断执行内容较多,可在中断回调函数中设立标志位,在while循环中去检测标志位。
                 *检测到标志位在执行相应的内容,这样不会影响到其他中断的响应
                 */
                HAL_Delay(15);          /*延时消抖15毫秒*/
                if(HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin) == GPIO_PIN_RESET)  /*按键消抖*/
                {
                        HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);  /*LED1灯状态取反*/
                }       
        }
}
5.2、完整工程下载地址。
(1)完整工程存储在码云。

(2)STM32_CSDN: CSDN中STM32专栏的所有示例代码



————————————————
版权声明:本文为CSDN博主「朱嘉鼎」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42727214/article/details/131101605

12920648fcd93c2a2a.png (50.63 KB )

12920648fcd93c2a2a.png

使用特权

评论回复
沙发
xinpian101| | 2023-6-19 19:55 | 只看该作者
就一个按键吗,我还以为是电脑键盘呢,看完了没看到USB HID...

使用特权

评论回复
板凳
Henryko| | 2023-6-19 21:22 | 只看该作者
只摘出了一个按键的模块

使用特权

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

本版积分规则

2218

主题

16611

帖子

18

粉丝