GPIO
- IO数量:STM32F7 最多有 9 组 IO,分别用大写字母表示,即 x=A/B/C/D/E/F/G/H/I,每组IO有16个管脚
- 包含的寄存器:STM32F7 每组 IO 有 10 个 32 位寄存器控制,其中常用的有 4 个配置寄存器+2 个数据寄存器+2 个复用功能选择寄存器,共 8 个
- 有8中工作模式,4种输入4种输
工作模式 | 解释 |
---|---|
输入浮空 | |
输入上拉 | |
输入下拉 | |
模拟输入 | |
开漏输出(带上拉或者下拉) | 连接输出寄存器 |
开漏复用功能(带上拉或者下拉) | 连接外设的相应模块 |
推挽输出 | 可以输出高低电平 |
推挽复用功能 |
- 有4中输出速度,低速中速快速高速
串行通信
同步通信
- 同步通信即带时钟同步信号的传输
I^2C
SPI
USART
- STM32F767IGT6 最多可提供 8 路串口,支持 8/16 倍过采样、支持自动波特率检测、支持 Modbus 通信、支持同步单线通信和半双工单线通讯、支持 LIN、支持调制解调器操作、智能卡协议和 IrDA SIR ENDEC 规范、具有 DMA 等。
- 串口寄存器:
串口控制寄存器 CR1 CR2 CR3
波特率寄存器 BRR
保护时间和预分频寄存器 GTPR
接收超时寄存器 RTOR
请求寄存器 RQR
中断和状态寄存器 ISR
中断标志清零寄存器 ICR
接收数据寄存器 RDR
发送数据寄存器 TDR
异步通信
UART
中断
- STM32F7 的中断控制器支持 22 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置
中断线 0-15 对应外部 IO 口的输入中断
端口复用
可以查看芯片手册查看对应的引脚可以复用为哪些功能,
- 通过AFRL,和AFRH寄存器配置复用 ,2个32位寄存器,美组GPIO有16个引脚,每个引脚占4bit位,AFRL映射0~7,AFRH映射8 ~15,4个bit位对应复用的不同功能,每组GPIO只能复用一个引脚(避免冲突)
//hal库中直接使用GPIO_InitTypeDef对象的mode和Alternate成员进行设置
GPIO_Init.Mode = GPIO_MODE_AF_PP; //复用推挽输出
GPIO_Init.Alternate = GPIO_AF12_FMC; //复用为FMC
看门狗
- STM32F7内部自带了 2 个看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG)。
定时器
- STM32F767 的定时器功能十分强大,有 TIM1 和 TIM8 等高级定时器,有 LPTIM1 低功耗定时器,也有 TIM2TIM5,TIM9TIM14 等通用定时器,还有 TIM6 和 TIM7 等基本定时器,总共达 15 个定时器之多。
- TM32F767 的通用定时器包含一个 16 位或 32 位自动重载计数器(CNT),该计数器由可
编程预分频器(PSC)驱动。STM32F767 的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和 PWM)等。 使用定时器预分频器和 RCC 时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32F767 的每个通用定时器都是完全独立的,没有互相共享的任何资源。 - 寄存器
名称 | 简写 | 功能 |
---|---|---|
控制寄存器 1 | TIMx_CR1 | 基础控制 |
中断使能寄存器 | TIMx_DIER | 中断使能 |
预分频寄存器 | TIMx_PSC | 该寄存器用设置对时钟进行分频,然后提供给计数器,作为计数器的时钟。 |
计数寄存器 | TIMx_CNT | 该寄存器是定时器的计数器,该寄存器存储了当前定时器的计数值 |
重装载寄存器 | TIMx_ARR | 该寄存器在物理上实际对应着 2 个寄存器。一个是程序员可以直接操作的,另外一个是程序员看不到的 |
状态寄存器 | TIMx_SRv | 该寄存器用来标记当前与定时器相关的各种事件/中断是否发生。 |
ADC
- ADC将连续变化的数字信号转换为离散的模拟信号。
- 12 位 ADC 是逐次趋近型模数转换器。它具有多达 19 个复用通道,可测量来自 16 个外部源、
两个内部源和 VBAT 通道的信号。这些通道的 A/D 转换可在单次、连续、扫描或不连续采样
模式下进行。ADC 的结果存储在一个左对齐或右对齐的 16 位数据寄存器中。
ADC 具有模拟看门狗特性,允许应用检测输入电压是否超过了用户自定义的阈值上限或下限。 - 规则通道组和注入通道组:STM32F767 将 ADC 的转换分为 2 个通道组:规则通道组和注入通道组。规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你的执行的。同这个类似,注入通道的转换可以打断规则通道的转换, 在注入通道被转换完成之后,规则通道才得以继续转换。STM32F767 其 ADC 的规则通道组最多包含 16 个转换,而注入通道组最多包含 4 个通道。
- 转换模式:STM32F767 的 ADC 可以进行很多种不同的转换模式,
MPU
MPU,即内存保护单元,可以设置不同存储区域的存储器访问特性(如只支持特权访问或
全访问)和存储器属性(如可缓存、可缓冲、可共享),对存储器(主要是内存和外设)提供保
护,从而提高系统可靠性。
HAL库中MPU_Region_InitTypeDef很方便的可以对其进行设置。