STM32F1学习——GPIO

一、STM32单片机

        stm32单片机有着非常广阔的应用,由于老忘记,最近打算系统的记录一下学习的内容,本章介绍GPIO,我们主要从电路的角度出发,了解配置后单片机内部的电路发生了什么变化。

二、STM32的系统结构图

        整个结构图从Cortex-M3的内核开始,内核一共有三根总线:

ICode指令总线是:传输指令代码,连接Flash闪存。

Dcode数据总线是:传输数据代码,连接Flash闪存。

System系统总线是:处理一些其他的任务(包括但不限于SRAM FSMC)和AHB总线。 

AHB(Advanced High-performance Bus)通过桥接模式接到APB2和APB1总线,其中APB2性能和AHB差不多,都略高于APB1,所以APB2上挂载的也是重要些的外设。

最后就是DMA了,DMA主要起到给CPU做辅助的功能,一些简单反复的数据搬运的任务都由DMA来做,而不用CPU亲自动手。

三、STM32的GPIO

        这个是本章的关键部分,I/O端口位的基本结构。

─ 输入浮空 、输入上拉、输入下拉

─ 模拟输入

─ 开漏输出 、 推挽式输出

─ 推挽式复用功能 、 开漏复用功能

        不同的模式对应不同的电路状态,但他们的母图都是下图。

下面是应该是斯密特触发器,所有子图都是。

① 输入浮空 、输入上拉、输入下拉

        这个模式下主要就是输入端的开关是否接VDD和VSS。

② 模拟输入

        这个模式下直接通过IO口到模拟输入。

③开漏输出 、 推挽式输出

        这是输出模式,当推挽输出的时候P-MOS和N-MOS同时工作,输出高低电平由单片机决定。

开漏输出的时候P-MOS不工作,仅N-MOS工作,无驱动能力,但是可以上拉电阻获得驱动能力。

④推挽式复用功能 、 开漏复用功能

        复用功能时由片上外设决定。

四、代码

        为了文章的篇幅,已经提交到了github上。

Jiang-kun02/STM32F103c8t6_learning: 包括stm32F103C8T6的标准库和HAL库的示例代码

参考

[1-2] STM32简介_哔哩哔哩_bilibili

[3-1] GPIO输出_哔哩哔哩_bilibili

keil出现大量未知语法错误(系统移植)_after top level declarator-优快云博客

配置CLion用于STM32开发【优雅の嵌入式开发】 - 知乎

如何使用STM32CubeMX快速配置工程【简单入门】_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值