1. 1 命名规则
STM32F103C8T6
STM:基于ARM®的32位微控制器
F:通用类型
103:增强型
C:48脚
8:64K字节的闪存存储器
T:LQFP封装
6:工业级温度范围,-40°C~85°C
2. 2 RCC
Reset and Clock Control——复位和时钟控制
2.1. 2.1 复位
三种不同方式,影响的区域不同
- 系统复位:除时钟控制器寄存器中的复位标志位和备份区域
- 上电复位:除备份区域
- 备份区域复位:只影响备份区域
2.2. 2.2 时钟
三种不同的时钟来源,用来驱动系统时钟
- HSI(高速内部时钟信号):由内部8MHz的RC振荡器产生
- HSE(高速外部时钟信号):在这个模式里,必须提供外部时钟。它的频率最高可达25MHz
- PLL(锁相环倍频输出):用来倍频HSI RC的输出时钟或HSE晶体输出时钟
- 实验因为使用USB模块,其需要一个48MHz的时钟源,只能从PLL输出端获取,因此我们实验时只能使用此模式
编程时,要使用某个IO口或者外设时就必须要对相应的时钟进行使能
3. 3 GPIO
3.1. 3.1 模式
有三种模式
- 通用输出
- 推挽(有上拉电阻)
- 开漏(直接输出)
- 复用功能输出
- 推挽
- 开漏
- 输入
3.2. 3.2 复用功能输出
因为板子上有很多外设(ADC
\ DAC
\ UART
等),为了节省引脚,所以将一些GPIO口作为这些外设的输出引脚。比如说,为了实现电脑和STM32的通信,PA9
和PA10
就被复用作为UART1
的发送接收引脚了
3.3 重映射
每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。
比如,UART1
的 Tx
, Rx
引脚在 PA9
和 PA10
上,但是同时它有两个映射端口PB6
,PB7
。开启重映射,PB6
和PB7
同样可以使用UART11。
4. 4 中断和事件
4.1. 4.1 NVIC
嵌套的向量式中断控制器
4.2. 4.2 EXTI
外部中断/事件控制器
能产生事件/中断请求的边沿检测器。每个输入线可以独立地配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。
5. 5 定时器
5.1. 5.1 普通定时器TIMx(2\3\4\5)
通用定时器是一个通过可编程预分频器驱动的16位自动装载计数器构成。可以用来测量输入信号的脉冲长度或者产生输出波形。
对定时器的修改主要通过改变3个定时器来实现
- 计数器寄存器(
TIMx_CNT
) - 预分频器寄存器 (
TIMx_PSC
) - 1-65536
- 自动装载寄存器 (
TIMx_ARR
)
6. 6 USART
通用同步异步收发器 支持全双工同步异步数据交换,使用多缓冲配置器的DMA方式,可以实现高速数据通信。
任何USART双向通信至少需要两个脚:接收数据输入(RX
)和发送数据输出(TX
)。