当前位置:网站首页>0基础自学STM32(野火)——使用寄存器点亮LED——GPIO功能框图讲解
0基础自学STM32(野火)——使用寄存器点亮LED——GPIO功能框图讲解
2022-06-29 16:58:00 【Fecter11】

我手上使用的是野火的stm32zet6(霸道开发板)总共144个引脚,而stm32vet6(指南者开发板)是100个引脚。
注意GPIO可不是引脚,引脚包含GPIO。
引脚比如VCC,GND,CLK等等
那么如何查看引脚的功能?
找到官方的数据手册
pin definition 就是引脚的定义
high density 高密度

比如上面两个常用的串口



从右往左看
首先是保护二极管,以上侧的二极管为例,如果输入电压高于vdd二极管导通,将IO电压钳位在3.3V+钳位电压的范围,从而保护了输入。
举例子:
如果我们要接一个电机,电机的启动产生反电动势,瞬时的导致二极管还没动作,从而损伤到IO。
另外启动的时候的电流也非常的大。
所以我们接电机要注意。一定要接一个驱动电路去隔离。
推挽输出:
我们操作的是

每4个位控制一个GPIO
那具体怎么输出0或1的??
通过操作输出控制寄存器(ODR)来控制MOS输出3.3v或0v。


建议先搞懂MOS管N管和P管的导通条件。
下图为输出高电平的电流流向,对外输出,相当于推。这又被称为灌电流,向负载灌入电流。
下图为输出低电平的电流流向,相当于拉。这又被称为拉电流。
MOS管的内阻非常小,推挽电流能达到25ma,是比较大的。
下面介绍开漏输出
开漏输出只能输出低电平

开漏输出的意义在哪里?
比如我们通过IO外接一个5v的外设,我们只需要外接给一个上拉VDD改为5V就可以做到电平匹配。
说明一下,上面大多用的是MOS管
互补信号,就是1/0

输出数据寄存器对应的就是ODR
我们可以直接操作输出数据寄存器实现输出1/0
也可以间接通过为设置/清除寄存器的写操作来控制数据输出寄存器来输出1/0
bit set / reset register这就是BSRR
低16位为set置1
高16位为rest清0
这就是说如果我们对BS0和BR0都写1,实际输出的以BS0为准还是1
还有一个寄存器也可以实现ODR输出清零的操作



Input data register输入数据寄存器


这个上拉和下拉是由BSRR寄存器控制的(视频在这部分我没能完全理解具体的实现方式,等后面用的时候再说)
我们的IO输入时3.3v我们读到寄存器的只能是1/0。而施密特触发器,就相当于一个门(我认为就是“门槛”),高于2v认为是高电平,输出1,低于1.2v就输出0
输入复用功能
这里补充一下模拟输出

边栏推荐
- SpingMVC请求和响应
- Greedy Apple plans to raise the price of iphone14, which will provide opportunities for Chinese mobile phones
- 卷妹带你学数据库---5天冲刺Day4
- InheritableThreadLocal 在线程池中进行父子线程间消息传递出现消息丢失的解析
- 【南京大学】考研初试复试资料分享
- 基于汇编实现的流载体的LSB隐藏项目
- 最高81.98%!超百所“双一流”高校本科深造率公布
- GNN notes: message propagation model
- Which is better and safer, GF e-gold or Dongfang fortune
- 微信小程序开发储备知识
猜你喜欢

In order to prevent being rectified after 00, a company requires employees not to sue the company

又拍云 Redis 的改进之路

@Component与@Configuration区别

Review of mathematical knowledge: curve integral of type I

自旋电子学笔记-张曙丰

After reading the complete code

Calibration of monocular camera and binocular camera with kalibr calibration tool

Comprehensive analysis of Seata distributed transaction at and XA

为什么信息化 ≠ 数字化?终于有人讲明白了

研究所的这些优势真香!上岸率还极高!
随机推荐
Why is informatization ≠ digitalization? Finally someone made it clear
Inheritablethreadlocal resolves message loss during message transmission between parent and child threads in the thread pool
NVIDIA安装最新显卡驱动
C winfrom chart chart control bar chart and line chart
使用kalibr標定工具進行單目相機和雙目相機的標定
如何在 PowerPoint 中向幻灯片添加 SmartArt?
关于XAMPP无法启动mysql数据库
Information | Zuckerberg was rated as the most careless CEO in the global IT industry; China Mobile R & D tethered UAV emergency communication high altitude base station
Gradle download slow or unable to download
深圳内推 | 深圳计算科学研究院招聘机器学习助理工程师(校招)
【R语言数据科学】:文本挖掘(以特朗普推文数据为例)
基于汇编实现的流载体的LSB隐藏项目
深度剖析monai(一) Data和Transforms部分
Redolog and binlog
『计组』CPU 如何区分指令和数据
Advanced MySQL - storage engine
Why does selenium become the first choice for web automated testing? (source code attached)
Comprehensive analysis of Seata distributed transaction at and XA
After studying this series of notes about software testing, it is a "bonus" to enter the factory
LSB hidden items of stream carrier based on assembly implementation