STM32笔记STM32F103

简介:

内核:ARM Cortex-M3

主频:72MHz

RAM:20K(SRAM)

ROM:64K(Flash)

供电:2.0~3.6V(标准3.3V)

资源:

参考意法半导体 STM32F103C8T6 标准外设库典型实例 - 知乎 (zhihu.com)

 STM32F103 最小系统

STM32F103C8T6的最小系统电路由芯片、电源、复位、晶振(时钟)、启动配置、程序下载

图:

GPIO

一共拥有 37 个 I/O 引脚,被分为PA(15 个)、PB(15 个)、PC(3 个)、PD(2 个)、PE(0 个)五个组,所有 I/O 接口可以映像到 16 个外部中断

外部中断

中断是什么?长期在中断中又会怎么样?

中断就是CPU先暂停然后缓存下当前数据,去处理突发情况,如果长期占用中断会造成CPU资源浪费,浪费他的处理能力与电量损耗。

定时器

7 个定时器,其中 1 个用于电机控制的 16 位 PWM 高级控制定时器、3 个 16 位通用定时器、2 个看门狗定时器(包含独立型的和窗口型)、1 个 24 位自减型系统嘀嗒定时器(仅用于实时操作系统)。

DMA

(直接内存存取,Direct Memory Access)用来提供在外设与存储器或者存储器与存储器之间的高速数据传输,传输过程无需经过 CPU 进行干预。

STM32F103C8T6 DMA资源:DMA1(7个通道)

ADC 模数转换器

STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道

ADC扫描模式+DMA可以实现测多组数据。热敏、光敏、红外

通信接口

3 个 USART 接口、 2 个 I²C 接口、、2 个 SPI 接口、1 个 CAN 接口、1 个 USB 2.0 全速接口。

STM32 GPIO

参考STM32 GPIO八种输入输出模式 - 知乎 (zhihu.com)

八种输入输出模式

1. 模拟输入 GPIO_MODE_AIN

输入信号不经施密特触发器直接接入,输入信号为模拟量而非数字量,其余输入方式输入数字量。

2. 浮空输入 GPIO_MODE_IN_FLOATING

输入信号经过施密特触发器接入输入数据存储器。当无信号输入时,电压不确定。因为浮空输入既高阻输入。

3. 下拉输入 GPIO_MODE_IPD

有输入信号时端口读取输入信号,无输入信号时端口电平被拉到低电平(高电平)

浮空输入在外界没有输入时状态不确定,可能对电路造成干扰。为了使得电路更加稳定,不出现没有输入时端口的输入数据被干扰 (比如手碰一下电压就发生变化)。这时就需要下拉电阻(或上拉电阻),此电阻与端口输入阻抗相比仍然较小。

4.上拉输入 GPIO_MODE_IPU

类似下拉输入,无输入信号时端口电平被拉到高电平

例如按键信号,当按下时输入低电平,松开时电平被拉到高电平。这样就不会出现按键松开时端口电平不确定的情况。即不知道时按下还是松开。

5.开漏输出 GPIO-MODE_OUT_OD

开漏输出即漏极开路输出。这种输出方式指场效应管漏极开路输出。需要接上拉电阻才能输出1

漏极经上拉电阻接到电源,栅极输出0时,场效应管截止(阻抗无线大),电压被分到场效应管上,此时输出为1。当栅极输出1时,场效应管导通,输出端口相当于接地,此时输出0。开漏输出高电平时是由外接电源输出的,因此可以实现高于输出端口电压的输出。可以实现电平的转换。

开漏输出可以实现线与功能,方法是多个输出共接一个上拉电阻。但是漏极开路输出上升沿慢,因为上升沿是外接电源对上拉电阻以及外接负载充电。当上拉电阻较大或者负载容性较大时时间常数较大,充电较慢。需要较快反映时可以采用下降沿触发,此时没有电阻接入,电路的时间常数较小,充电较快。

6. GPIO_MODE_OUT_PP 推挽输出

推挽输出既可以输出1,又可以输出0

但是无法调节输出电压,因为输出高低电平均为三极管输入端电压,此电压在由芯片内部供电,无法改变。推挽输出任意时刻只有一路工作。上图为输出高电平时电路工作状态。只有三极管导通电阻,无外接电阻。因此推挽输出损耗小、速度快

7.复用开漏输出 GPIO_MODE_AF_OD

开漏输出输出的是输出数据寄存器中的数据,复用开漏输出输出的是来自外设的数据

STM32单片机内部有其他的外设,比如定时器、DAC等。

8.复用推挽输出 GOIO_MODE_AF_PP

复用推挽输出原理与复用开漏输出原理相同

猜你喜欢

转载自blog.csdn.net/qq_42241352/article/details/132721789