keyskingSTM32课程笔记

keysking,哥,你NB了,求你继续更新,粉丝什么都会做的

P1---LED电灯

GPIO引脚,又被称呼为通用引脚,作用就是在STM32内核的控制下,接收电压,或者输出电压。

接收电压

下图为接收电压。  3.3V和0V之间有了电势差,产生了电流,LED灯就此亮了起来。

释放电压

在8大模式之一的推挽输出模式中,可以进行电压的输出,可以输出3.3V的高电平,也可以输出0V的低电平

P2---电灯宗师 

闪烁太快了,需要延迟

需要延迟函数的情况:下面是一个对GPIO引脚,GPIO7号引脚,调为高电平(第一句),调为低电平的代码。目的是实现LED灯的闪烁。

出现了问题,这样的写的代码,闪烁的太快(高点电平变化的太快)。人眼是看不出来闪烁的。

使用延迟函数

        总结:前面两个都是做的控制GPIO口输出高低电平,模式是GPIO_OUTPUT


P3---按键控制小灯亮起

KEY1分析

按键KEY1,电路图,以下对按键K1进行分析

GPIO的浮空输入模式

浮空输入模式状态下,PB12处相当于一个很大的电阻,根据电阻越大分压越大,此时10K的电阻处几乎没有电压。PB12处,几乎吃到了电源的所有压强。此时读取PB12处的电平值,是高电平3.3V。(下图1)。

当按键按下的时候,电路接通,此时PB12和GND相连接,电压为低电平0V.

综上: 按键key,按下PB12是低电平。不按PB12是高电平

什么是上拉(加个上拉电阻)

上拉:使用电源将GPIO口处的电平拉高的操作,称为上拉。(一般上拉操作需要一个电阻配合,因为不能直接将芯片引脚和电源相连接。)

具体如何完成上拉操作的:

此时PB12通过电阻直接连到了一个电源上,并且上面有一个电阻。浮空输入模式状态下,PB12处相当于一个很大的电阻,根据电阻越大分压越大,此时10K的电阻处几乎没有电压。PB12处,几乎吃到了电源的所有压强。此时读取PB12处的电平值,是高电平3.3V。(下图1)。

什么是抖动

在按键按下的的时候,是有人无法察觉的“高频率的,电平的高低变化”,如下图

消除抖动

按键两端加电容式是为了消除抖动。硬件消除抖动,有一定概率无法完全消除抖动,需要软件延时100ms,通过这种软件消除抖动的方式进行消抖。至于为什么是100ms。因为抖动一般100ms就会消失

KEY2分析

如图所示,KEY2没有上拉电阻,所以需要设置对应的PB13为“上拉模式”,而不再是“浮空输入模式”。设置为上拉模式之后,就跟KEY一样了。按下前PB13是高电平,按下后PB13是低电平(PB13直接和GND相连接)

即当电路没有上拉电阻的时候,就使用STM32内置的上拉电阻,把输出模式调整以下就可以。

P5---GPIO内部的那些事(重点)

成员介绍

①GPIO内部电路原理图

②芯片内部电路保护

芯片内部电路是比较脆弱的,所以I/O引脚接的有两个保护二级管。当电压高于3.3V的时候,就走上面的VDD,让电源网络承受。当电压小于0V的时候,就走下面的的VSS,让GND承受。

注意此结构智能抵御一瞬间的电压波动,若长时间把把较大的电压导入I/O口,依然会损坏芯片。

有一些I/O引脚是可以承受5V的高电压作为高电平的。

③寄存器

寄存器是程序与硬件电路连接的桥梁

输出

输出部分电路简图

④推挽输出

优点:作为电源输出,3.3V电压;缺点:只能输出3.3V电压

⑤开漏输出

优点:配合外部电路的电源,更加灵活;缺点:高电平其实是高阻态,无法输出电流

⑥复用-推挽/开漏输出

从上图黄线进来的控制就叫:复用-推挽/开漏输出

⑦输出模式分为两类,普通/复用推挽/开漏输出

输入

输入模块电路简图

浮空输入:

VDD和VSS都不开

上拉输入:

VDD开

下拉输入:

VSS开

模拟输入:

不走TTL,读取具体的电压值,不让TTL转化为高低电平

P6---初识中断以及外部中断的使用

P7---深入中断

中断处理模块图

外部中断线有16个

即EXTI0~EXTI1,分别对应与其编号相同的GPIO口

eg:PA0,PB0,PC0,PD0对应EXTI0;

eg:PA1,PB1,PC1,PD1对应EXTI1;

中断触发方式

以下降沿为例

配置为下降沿寄存器开启,上升沿寄存器关闭。

当检测到下降沿信号的时候,向后面的“或门”发送高电平信号(1)。(或门的性质是,有1就1)

若是GPIO12发来的,那么请挂起寄存器的第12位就置为1,并且给(与门)一个高电平。

此时若GPIO12被设定为了GPIO_EXYI12。那么中断频闭寄存器中的对应位也是1,此时两个1凑齐,才向后面的NVIC控制器发送信号。进行中断响应

中断向量和对应的中断处理函数

中断向量中,只有EXTI1~EXTI4有对应的中断处理向量,EXIT5~EXTI10公用一个,EXTI11~EXTI15公用一个

抢占优先级和响应优先级别

两个中断同时发生

两个中断先后发生

P8---串口初识(轮询模式)

这些都是串口

TTL单片机中最常用的串口

为什么两个设备要共地(GND)

把两个设备的参考电势拉到同一个水平线上。即统一对高低电平的标准 

如何在电脑上看大STM32发来的信息

需要”串口调试助手“。注意串口助手只是一个可视化的软件,具体的“电脑到STM32”以及“STM32到电脑”之间的相互传递,则需要在cubeIDE里面具体的去写一下

P9---串口原理与中断模式的收发

轮询模式的发送端

CPU不断查询发送数据寄存器(TDR)是否将数据都送给发送移位寄存器了

CPU不断查询“发送数据寄存器”,直到数据全部都“转移”给发送移位寄存器。或者用时超过我们设定的超时时间

轮询模式的接收端

接收移位寄存器” 每拿到一帧数据,就发给”接收数据寄存器“

CPU不断查询“接收数据寄存器”,有数据就“搬走”,给我们设定的用于接收数据的变量。直到全部搬走或者到达“超市时间”

所以CPU就不断在这里“轮询

所以这种模式下无论是接收端,还是发送端,CPU都是不断一轮一轮的去“查询”寄存器,而无暇顾及其他的任务。我门称这种CPU一直忙碌的状态为“堵塞”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值