STM32(五)GPIO输入硬件电路及C语言知识复习

server/2024/11/15 7:26:12/

本小节主要是GPIO输入模式下的硬件电路和C语言知识的回顾

C语言中的数据:定义和引用

一、GPIO输入模式下的硬件和电路

1.按键介绍

可以用延时函数消除按键抖动

2.传感器模块介绍

(1)传感器元件的电阻会随模拟量的变化而变化,通过与定值电阻的分压得到模拟输出电压

(2)上下拉电阻工作原理介绍

定值电阻R1为上拉电阻,相当于上面的弹簧将杆上拉,可变电阻N1为下拉电阻,将杆子往下拉,电阻阻值越小,弹簧拉力越强。最终的输出电压为弹簧拉扯下杆子的高低。

上拉和下拉电阻在学习单片机的过程中会经常遇见,如弱上拉、弱下拉、强上拉、强下拉,强和弱是指电阻阻值的大小,即指弹簧弹力的大小。

3.按键硬件电路

一般使用上面两种下接按键的方式:第一种是按下时接地,此时读取的电压是低电平,松开是为悬空,要求GPIO接口内部电路配置为上拉模式,此时引脚悬空,接的是高电平。第二种是接了一个上拉电阻,此时松开为高电平,不会出现悬空,此时引脚可以配置为浮空输入或上拉输入

二、C语言知识复习

1.C语言数据类型

(1)在51单片机中int是占16位的,在STM32中int占32位,若要用16位的数据,则要用short表示

(2)stdint关键字这一列可直接用来代替关键字定义

2.C语言宏定义

(1)使用宏定义进行改名,增强程序的可读性

(2)宏定义后边不需要分号,定义名在左边,可以替换任意类型的名字

3.typedef

定义名在右边,最后需要加分号,只能给变量类型换名字,变量类型换名字一般用typedef

4.C语言结构体

(1)结构体是一个数据打包的过程,首先将参数写到结构体的变量中,然后统一打包,将结构体传递到函数中,再在函数里,把结构体拆包,读取变量。使用了结构体的传参方式

注意:结构体中使用分号隔开

(2)结构体的定义和使用

因为结构体的定义很长,用typedef换名字,以便更方便简洁的使用。

5.C语言枚举


http://www.ppmy.cn/server/129499.html

相关文章

【2024】前端学习笔记12-JavaScript初体验-Js操作window

学习笔记 1.什么是JavaScript2.JavaScript初体验3.案例:弹出一个带确认、取消的对话框4.JS之window对象4.1.window.open:打开新窗口4.2.window.innerWidth/innerHeight:获取浏览器窗口宽度和高度4.3.window.location.reload:重新加载当前页面4.4.window.document:操作文档…

K8s简介及环境搭建

一、Kubernetes简介 kubernetes 的本质是一组服务器集群,它可以在集群的每个节点上运行特定的程序,来对节点中的容器进行管理。目的是实现资源管理的自动化,主要提供了如下的主要功能: 自我修复:一旦某一个容器崩溃&a…

【C++】AVL树(AVLTree)

目录 一、AVL树概念: 二、定义: 三、AVL树的插入: 四、AVL树的旋转: 1、左单旋: 2、右单旋: 3、右左双旋: 4、左右双旋: 五、AVL树的检验: 一、AVL树概念&#x…

思迅食通天提示:存在未买单餐桌不能日结

可用语句1查询相关单据,语句2删除,语句1时间改为实际日结开始结束时间,语句2单号改为1查询出的单号,注意备份数据库 use issfoodv6 ----1、可查询出对应的单据 select * from cybr_u_tmp_orderdish_qu where isnull ( ch_payflag …

ajax的原理,使用场景以及如何实现

AJAX 原理 AJAX(Asynchronous JavaScript and XML)是一种在网页中实现异步通信的技术,允许网页在不重新加载整个页面的情况下与服务器交换数据。这使得网页应用可以更加响应式和动态,提升用户体验。 AJAX 的核心原理是在后台通过…

【报错】mac m1 gateway 报错

今天写项目出现以下报错: Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on io.netty:netty-res…

螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习04(环境准备)

4 创建docker容器 4.1创建网络 [rootlocalhost wutool]# docker network create -d macvlan --subnet192.168.137.0/24 --gateway192.168.137.2 --ip-range192.168.137.0/24 -o parentens33 nat 52af11381bfd655d175e4168265b2a507793e8fe48f119db846949ffd4dd27de [rootlocal…

SpringBoot驱动的明星周边产品电商解决方案

1系统概述 1.1 研究背景 如今互联网高速发展,网络遍布全球,通过互联网发布的消息能快而方便的传播到世界每个角落,并且互联网上能传播的信息也很广,比如文字、图片、声音、视频等。从而,这种种好处使得互联网成了信息传…