时钟系统

一.在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。

①HSI是高速内部时钟,RC振荡器,频率为8MHz。

②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。

③LSI是低速内部时钟,RC振荡器,频率为40kHz。

④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

⑤PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

相关函数

ESP32定时器中断可以抢占吗_引脚

端口复用

在TSM32里面,大部分的引脚都是有GPIO复用功能,也就是说,一个 GPIO如果可以复用为内置外设(串口,ADC,DAC可多可少)的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。例如图下方框:串口 1 的引脚对应的 IO 为 PA9,PA10。 CAN总线的的引脚对应的 IO 为 PA11,PA12。等等根据原理图或手册可看

例如

当PA9,PA10 引脚需要作为串口 1 的 TX,RX 引脚使用的时候,那就是端口复用。

端口复用配置

1.GPIO端口时钟使能

2.复用外设时钟使能

3.端口模式配置 GPIO_INIT();

ESP32定时器中断可以抢占吗_stm32_02

重映射

可分为部分重映射和完全重映射,理解就是字面意思.

方便布线.减少信号干扰,可以通过映射的方式实现

比如串口2的完全重映射

ESP32定时器中断可以抢占吗_复用_03

ESP32定时器中断可以抢占吗_ESP32定时器中断可以抢占吗_04

配置过程

1.使能GPIO时钟(重映射的IO)
2.使能功能外设时钟
3.使能AFIO时钟(辅助功能时钟).重映射必须使能AFIO时钟.

NVIC中断优先级管理

中断优先级分组

设置抢占优先级和响应优先级,一般只设置一次中断优先级分组.

高优先级抢占可打断低优先级抢占,抢占级相同,看响应优先级的高低,但不打断.

理解为抢占是打断然后服务,响应是等待时,响应优先级高的排在前面服务.

ESP32定时器中断可以抢占吗_stm32_05

中断优先级设置

使用IP寄存器
 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
 结构体为
 typedef struct
 {
 uint8_t NVIC_IRQChannel; 中断通道
 uint8_t NVIC_IRQChannelPreemptionPriority; 抢断优先级
 uint8_t NVIC_IRQChannelSubPriority; 响应
 FunctionalState NVIC_IRQChannelCmd; 使能
 } NVIC_InitTypeDef;