【STM32】STM32学习笔记-GPIO输入(07)

00. 目录

文章目录

    • 00. 目录
    • 01. 按键简介
    • 02. 传感器模块简介
    • 03. 光敏电阻传感器
    • 04. 按键电路图
    • 05. C语言数据类型
    • 06. C语言宏定义
    • 07. C语言typedef
    • 08. C语言结构体
    • 09. C语言枚举
    • 10. 附录

01. 按键简介

  • 按键:常见的输入设备,按下导通,松手断开

  • 按键抖动:由于按键内部使用的是机械式弹簧片来进行通断的,所以在按下和松手的瞬间会伴随有一连串的抖动

在这里插入图片描述

02. 传感器模块简介

  • 传感器模块:传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化,通过与定值电阻分压即可得到模拟电压输出,再通过电压比较器进行二值化即可得到数字电压输出

实物图
在这里插入图片描述

电路原理图
在这里插入图片描述

03. 光敏电阻传感器

在这里插入图片描述

传感器接线图
在这里插入图片描述

04. 按键电路图

在这里插入图片描述

05. C语言数据类型

在这里插入图片描述

06. C语言宏定义

关键字:#define

用途:用一个字符串代替一个数字,便于理解,防止出错;提取程序中经常出现的参数,便于快速修改

定义宏定义:

#define ABC 12345

引用宏定义:

 int a = ABC; //等效于int a = 12345;

07. C语言typedef

关键字:typedef

用途:将一个比较长的变量类型名换个名字,便于使用

定义typedef:

 typedef unsigned char uint8_t;

引用typedef:

 uint8_t a; //等效于unsigned char a;

08. C语言结构体

•关键字:struct

用途:数据打包,不同类型变量的集合

•定义结构体变量:

 struct{char x; int y; float z;} StructName;

因为结构体变量类型较长,所以通常用typedef更改变量类型名

•引用结构体成员:

 StructName.x = 'A';StructName.y = 66;StructName.z = 1.23;

或 pStructName->x = ‘A’; //pStructName为结构体的地址 pStructName->y = 66;

 pStructName->z = 1.23;

09. C语言枚举

关键字:enum

用途:定义一个取值受限制的整型变量,用于限制变量取值范围;宏定义的集合

定义枚举变量:

enum{FALSE = 0, TRUE = 1} EnumName;

因为枚举变量类型较长,所以通常用typedef更改变量类型名

引用枚举成员:

 EnumName = FALSE;EnumName = TRUE;

10. 附录

参考: 【STM32】江科大STM32学习笔记汇总

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/222319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量子技术将如何重构我们的生活

薛定谔的猫与量子世界的奥秘 在量子世界中,“薛定谔的猫”成为一个令人费解而神秘的概念,描述了生死叠加的状态。你能想通吗?想不通很正常,因为这是量子世界,是物理学最前沿的研究领域。在19世纪末,经典物理…

TCP/IP详解——ARP 协议

文章目录 一、ARP 协议1. ARP 数据包格式2. ARP 工作过程3. ARP 缓存4. ARP 请求5. ARP 响应6. ARP 代理7. ARP 探测IP冲突8. ARP 协议抓包分析9. ARP 断网攻击10. 总结 一、ARP 协议 ARP(Address Resolution Protocol)协议工作在网络层和数据链路层之间…

ImportError: cannot import name ‘BaseQuery‘ from ‘flask_sqlalchemy‘

ImportError: cannot import name ‘BaseQuery’ from flask_sqlalchemy’报错 原-报错的导入 from flask_sqlalchemy import SQLAlchemy as BaseQuery现-成功的导入 from flask_sqlalchemy.query import Query as BaseQuery

CCF编程能力等级认证GESP—C++2级—20230923

CCF编程能力等级认证GESP—C2级—20230923 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)⼩杨的 X 字矩阵数字⿊洞 答案及解析单选题判断题编程题1编程题…

使用Docker本地安装部署Draw.io绘图工具并实现远程访问协作办公

前言 提到流程图,大家第一时间可能会想到Visio,不可否认,VIsio确实是功能强大,但是软件为收费,并且因为其功能强大,导致安装需要很多的系统内存,并且是不可跨平台使用。所以,今天给…

单元测试二(理论)-云计算2023.12-云南农业大学

文章目录 一、单选题1、三次握手、四次挥手发生在网络模型的哪一层上?2、互联网Internet的拓扑结构是什么?3、以下哪一种网络设备是工作在网络层的?4、以下哪种关于分组交换网络的说法是错误的?5、以下哪种协议是在TCP/IP模型中的…

电脑开机出现:CLIENT MAD ADDR (网卡启动系统)的解决办法

文章目录 前言步骤1、确定情况2、对症下药——关闭网卡启动 补充1、关于BIOS2、关于PXE 前言 最近给旧电脑重装系统安了下开发环境和常用软件啥的,之前还好好启动的电脑,开机突然需要额外加载一个页面,虽然最后正常启动了不影响使用&#xf…

linux 内核同步互斥技术之自旋锁

自旋锁 自旋锁用于处理器之间的互斥,适合保护很短的临界区,并且不允许在临界区睡眠。申请自旋锁的时候,如果自旋锁被其他处理器占有,本处理器自旋等待(也称为忙等待)。 进程、软中断和硬中断都可以使用自旋…

Qt5 CMake环境配置

Qt5 CMake环境配置 设置Qt路径 有两种方法 Qt5_DIR,使用这个变量,必须把路径设置到Qt5Config.cmake所在文件夹,也就是安装目录下的lib/cmake/Qt5CMAKE_PREFIX_PATH,只需要设置到安装目录就可以了,这个目录就是bin、…

OpenStack和Docker结合?为何现在流行?

为何现在流行OpenStack和Docker结合? 结合的好处 1、资源管理与调度灵活: OpenStack提供了完善的虚拟机管理能力,而Kubernetes(使用Docker作为容器运行环境)在容器调度方面非常高效。将两者结合,可以实现…

RNN介绍及Pytorch源码解析

介绍一下RNN模型的结构以及源码,用作自己复习的材料。 RNN模型所对应的源码在:\PyTorch\Lib\site-packages\torch\nn\modules\RNN.py文件中。 RNN的模型图如下: 源码注释中写道,RNN的数学公式: 表示在时刻的隐藏状态…

ES6学习(三):Set和Map容器的使用

Set容器 set的结构类似于数组,但是成员是唯一且不会重复的。 创建的时候需要使用new Set([])的方法 创建Set格式数据 let set1 new Set([])console.log(set1, set1)let set2 new Set([1, 2, 3, 4, 5])console.log(set2, set2) 对比看看Set中唯一 let set3 new Set([1, 1,…

职场记5:勇闯深圳,追梦职场

上一篇《职场记4:我在这家公司的美好时光》 为了追求更好的发展,我毅然决然地离开了令我感到无比安逸的工作环境,去大城市深圳闯一闯。这个城市对我来说充满了未知和挑战,但我相信只有勇敢地面对未知,才能找到更好的自…

多架构容器镜像构建实战

最近在一个国产化项目中遇到了这样一个场景,在同一个 Kubernetes 集群中的节点是混合架构的,也就是说,其中某些节点的 CPU 架构是 x86 的,而另一些节点是 ARM 的。为了让我们的镜像在这样的环境下运行,一种最简单的做法…

Rust语言基础语法使用

1.安装开发工具: RustRover JetBrains: Essential tools for software developers and teams 下载: RustRover: Rust IDE by JetBrains 下载成功后安装并启动RustRover 安装中文语言包插件 重启RustRover生效

vue3引入echarts正确姿势

echarts文档地址: echarts官网地址 echarts配置手册 echarts 模板地址 1、安装 (1)安装echarts包 npm install echarts --save 或者 cnpm install echarts --save(2)安装vue echarts工具包 npm install echart…

持续集成交付CICD:Jenkins使用基于SaltStack的CD流水线下载Nexus制品

目录 一、理论 1.salt常用命令 二、实验 1.SaltStack环境检查 2.Jenkins使用基于SaltStack的CD流水线下载Nexus制品 二、问题 1.salt未找到命令 2.salt简单测试报错 3. wget输出日志过长 一、理论 1.salt常用命令 (1)salt 命令 该 命令执行s…

Linux-----9、echo命令

# echo命令 echo会将输入的字符串送往标准输出,并在最后加上换行符。 可以理解为打印字符串。 常见选项: -n :不输出最后的换行符“\n” -e:解释转义字符(字符串中出现\n、\t等特殊字符,则特别加以处理&a…

蓝牙物联网智慧物业解决方案

蓝牙物联网智慧物业解决方案是一种利用蓝牙技术来提高物业管理和服务效率的解决方案。它通过将蓝牙技术与其他智能设备、应用程序和云服务相结合,为物业管理和服务提供更便捷、高效和智能化的支持。 蓝牙物联网智慧物业解决方案包括: 1、设备管理&#…

JupyterNotebook安装依赖 使用conda环境

怎么使用JupyterNotebook安装依赖?(使用conda环境?) 预装的jupyter中有conda,可以进入终端执行相关命令 预装的Jupyter,目标用户是轻度的Jupyter用户,如果想使用conda的多环境等高级功能&#x…