您的位置:首页 > 房产 > 建筑 > 网络营销的推广系统_海报设计培训_世界十大网站排名_seo技术培训中心

网络营销的推广系统_海报设计培训_世界十大网站排名_seo技术培训中心

2025/4/6 18:06:02 来源:https://blog.csdn.net/qq_44764442/article/details/146947180  浏览:    关键词:网络营销的推广系统_海报设计培训_世界十大网站排名_seo技术培训中心
网络营销的推广系统_海报设计培训_世界十大网站排名_seo技术培训中心

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做!

本文写于:2025.04.02

STM32开发板学习——第7节: [3-3] GPIO输入

  • 前言
  • 开发板说明
  • 引用
  • 解答和科普
  • 一、GPIO输入
  • 二、C语言知识
  • 问题
  • 总结

前言

   本次笔记是用来记录我的学习过程,同时把我需要的困难和思考记下来,有助于我的学习,同时也作为一种习惯,可以督促我学习,是一个激励自己的过程,让我们开始32单片机的学习之路。
   欢迎大家给我提意见,能给我的嵌入式之旅提供方向和路线,现在作为小白,我就先学习32单片机了,就跟着B站上的江协科技开始学习了.
   在这里会记录下江协科技32单片机开发板的配套视频教程所作的实验和学习笔记内容,因为我之前有一个开发板,我大概率会用我的板子模仿着来做.让我们一起加油!
   另外为了增强我的学习效果:每次笔记把我不知道或者问题在后面提出来,再下一篇开头作为解答!

开发板说明

   本人采用的是慧净的开发板,因为这个板子是我N年前就买的板子,索性就拿来用了。另外我也购买了江科大的学习套间。
   原理图如下
1、开发板原理图
在这里插入图片描述
2、STM32F103C6和51对比
在这里插入图片描述
3、STM32F103C6核心板
在这里插入图片描述

视频中的都用这个开发板来实现,如果有资源就利用起来。另外也计划实现江协科技的套件。

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

引用

【STM32入门教程-2023版 细致讲解 中文字幕】
还参考了下图中的书籍:
STM32库开发实战指南:基于STM32F103(第2版)
在这里插入图片描述
数据手册

解答和科普

一、GPIO输入

在这里插入图片描述
在这里插入图片描述
这就是基本电路:N1就是传感器元件所代表的可变电阻,它的阻值可以根据环境的光线、温度等模拟量变化,上面这个R1,是和N1进行分压的定值电阻,R1和N1串联,一端接在VCC正极,一端接在GND负极。基本的分压电路。左边的电容是一个滤波电容,它是为了给中间的电压输出进行滤波的,用来滤除干扰,保证输出电压波形的平滑。
一般我们在电路中遇到这种一端接在电路上,另一端接地的电容,都可以考虑是不是滤波电容的作用。 如果是滤波电容的作用,那这个电容就是用来保证电路稳定的,并不是电路的主要框架,这时候我们在分析电路的时候可以把它去掉,分析更简单。
分析:N1阻值变小时,下拉作用就会增强,中间的AO端的电压就会拉低,极端情况下,N1阻值为0,AO输出被完全下拉,输出0V,当N1阻值变大,下拉作用就会减弱,中间的引脚由于R1的上拉作用,电压就会升高。极端情况下,N1阻值无穷大,相当于断路,输出电压被R1拉高至VCC。

AO这个输出端你可以把它想象成一个放在屋里的水平杆子,R1上拉电阻相当于拴在屋顶的弹簧,将杆子往上拉,N1下拉电阻相当于拴在地面的弹簧,将杆子往下拉,这个电阻的阻值越小,弹簧的拉力就越强,这个杆子的高度相当于输出电压。偏移多少取决于拉力之差。
如果上面的组织小,拉力强,那输出电压就会变高 ,反之下面的阻值小,输出电压就会变低,如果阻值为0,在电路中就是短接的状态,那就相当于拉力无穷大了,如果上下拉电阻都为0,就是两个无穷大的力在对抗,在电路中呈现的状态就是电源短路,所以这种情况应该避免。
在单片机经常出现 弱上拉,弱下拉,强上拉,强下拉,这里的强弱指的是电阻阻值的大小,也就是弹簧弹力的大小,上拉和下拉指的就是接到VCC还是GND,也就是这个杆子是拉向屋顶还是地面,最终的输出电压就是在弹簧拉扯下最终杆子的高低。
在这里插入图片描述
这就是AO电压的由来,仅需要两个电阻分压即可得到,还支持数字输出,这个数字输出就是对AO进行二值化的输出,这里二值化是通过芯片LM393来完成的,这个LM393是 一个电压比较器芯片,里面有两个独立的电压比较强电路,然后剩下的时VCC和GND供电,其他的就是运算放大器。
在这里插入图片描述
在这里插入图片描述
按键硬件电路:一般用下接,
1、当按键按下时,PA0被直接下拉到GND,此时读取PA0口的电压就是低电平,当按键松手时,PA0被悬空,悬空会出现什么情况呢,就是引脚的电压不确定对吧,所以在这种接发下,必须要求PA0是上拉输入的模式,否则就会出现引脚电压不确定的错误现象,所以当PA0是上拉输入模式,引脚再悬空,PA0就是高电平,所以这种方式下,按下按键,引脚为低电平,松手,引脚为高电平。

2、外部上拉电阻了,当按键松手时,引脚由于上拉作用,自然保持为高电平,当按键按下时,引脚直接接到GND,也就是无穷大的力把这个引脚往下拉,所以引脚为低电平,此时可以配置为浮空输入或者上拉输入。如果是上拉,就会更强一点,会更加的稳定。

3、这种要求PA0必须配置成下拉输入的模式,当按键按下时,引脚为高电平,松手时,引脚回到默认值低电平。

4、再外界一个下拉电阻,所以PA0配置为下拉输入模式或者浮空输入模式。
传感器电路:

二、C语言知识

在这里插入图片描述
unsigned char =uint8_t=u8;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
和宏定义的区别:
首先,宏定义的新名字在左边,typedef的新名字在右边;
宏定义不需要分号,typedef后面必须加分号;
宏定义任何名字都可以换,而typedef只能专门给变量类型换名字。
在这里插入图片描述
结构体也是一种数据类型,比如Char、short、int等,这些称为基本数据类型,然后数组就是一大堆基本数据类型的集合,
比如char a[10];就是10个char型数据的集合,那数组我们就可以称为组合数据类型,它是有许多基本数据类型组合而来的,数组组合只能是相同的数据,比如这个就是10个char型数据的组合。
如果我们相组合不同的数据类型该怎么办呢:
结构体:是一种组合数据类型,它的作用就是组合不同的数据类型。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这些内容是一个结构体的数据类型,然后是typedef 将结构体换了个名字,叫做StructName_t

#include   <stdio.h>//	typedef struct{char x;int y;float z;} StructName_t;typedef struct{char x;int y;float z;} StructName_t;int main(void)
{StructName_t c;StructName_t d;c.x='A';c.y=66;c.z=3.14;printf("c.x= %c\n", c.x);printf("c.y= %d\n", c.y);printf("c.z= %f\n", c.z);printf("HELLO Word\n");return 0;
}

在这里插入图片描述
第一句,定义结构体类型的数据,数据名称叫GPIO_InitStructure,左边是结构体类型名称,
在这里插入图片描述
Struct包括花括号这里是结构体数据类型,然后用typedef将这个类型换了一个新名字,叫做GPIO_InitDef,和我们之前写的一样。
然后引用结构体成员;
在这里插入图片描述
这是因为,结构体是一种组合数据类型,在函数之间的数据传递中,通常用的是地址传递而不是值传递。
在这里插入图片描述
在这里插入图片描述
这里是用结构体指针来接受的,然后引用就可以用->.
打包和拆包。
在这里插入图片描述
比如星期八
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
也可以int a= ENABLE;
和宏定义差不多。

问题

总结

本节课主要是学习了,GPIO的输入,介绍了按键和传感器的原理和硬件电路,然后介绍了C语言的基本知识。结构体变量和枚举,定义的简写等。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com