0%

STM32 Basics

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的通信,PA9PA10就被复用作为UART1的发送接收引脚了

3.3 重映射

每个内置外设都有若干个输入输出引脚,一般这些引脚的输出端口都是固定不变的,为了让设计工程师可以更好地安排引脚的走向和功能,在STM32中引入了外设引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。

比如,UART1Tx , Rx 引脚在 PA9PA10 上,但是同时它有两个映射端口PB6PB7。开启重映射,PB6PB7 同样可以使用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)。