按键检测知识

发布时间:2024年01月20日

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、key.c

GPIO的结构体是GPIO_InitTypeDef。其中

成员GPIO_Pin的成员是GPIO_Pin_1等,在stm32f10x_gpio.h文件中

成员GPIO_Mode的右值是GPIO_Mode_xxx,在stm32f10x_gpio.h文件中

成员GPIO_Speed的右值是GPIO_Speed_50MHz,为什么是50MHz,还不知道。

使能时钟函数RCC_APB2PeriphClockCmd,其中第一个参数是GPIOA...GPIOG等地址。这个定义在stm32f10x.h文件中,stm32f10x.h文件工程中有,arm keil安装路径里也有,比如本机的路径是

C:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\1.0.5\Device\Include

?工程中的路径是

E:\Gitee\fireproject\LibraryProject\fireProject_key\Libraries\system

至于野火教程中将GPIOA再次宏定义,我就不再次宏定义了吧。

上面的RCC_APB2PeriphClockCmd函数的第一个函数是RCC_APB2Periph_GPIOA,类型是uint32_t类型,这个地址值宏定义在stm32f10x_rcc.h文件中。

GPIO_Mode_AIN?

模拟输入

GPIO_Mode_IN_FLOATING?

浮空输入

GPIO_Mode_IPD

下拉输入

GPIO_Mode_IPU

上拉输入

GPIO_Mode_Out_OD?

开漏输出

GPIO_Mode_Out_PP

推挽输出

GPIO_Mode_AF_OD

复用开漏输出

GPIO_Mode_AF_PP

复用推挽输出

按键检测的函数,即读取gpio引脚的电平,

GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

?keil使用bool、false、true需要包含#include <stdbool.h> 头文件,不然会报错。

led灯还有三个不同寄存器,有三种实现效果

编写好代码后烧写到protues中,实现不了按键改变灯闪烁的情况。

情况一、代码中GPIO类型设置错了,按键应该设置成浮空输入。led灯应该设置成推挽输出。

情况二、我的电路图画错了。

一开始这样的电路图,实现不了效果,调试代码发现就是根本检测不到PA2引脚电平变化,然后自己把接地改成接vcc。

这样就可以了。

实际野火设计的也是接电源啊。。

成功,提交代码!?

二、告警信息

1.告警1

.\key\bsp_key.h(8): warning:  #1295-D: Deprecated declaration gpio_init - give arg types

解决办法:函数需要加形参void gpio_init(void);?

key\bsp_key.c(51): warning:  #940-D: missing return statement at end of non-void function "get_key_status" 

bool类型函数缺少返回值。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

文章来源:https://blog.csdn.net/2301_77560238/article/details/135720165
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。