时钟系统
一.在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。
相关函数
端口复用
在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();
重映射
可分为部分重映射和完全重映射,理解就是字面意思.
方便布线.减少信号干扰,可以通过映射的方式实现
比如串口2的完全重映射
配置过程
1.使能GPIO时钟(重映射的IO)
2.使能功能外设时钟
3.使能AFIO时钟(辅助功能时钟).重映射必须使能AFIO时钟.
NVIC中断优先级管理
中断优先级分组
设置抢占优先级和响应优先级,一般只设置一次中断优先级分组.
高优先级抢占可打断低优先级抢占,抢占级相同,看响应优先级的高低,但不打断.
理解为抢占是打断然后服务,响应是等待时,响应优先级高的排在前面服务.
中断优先级设置
使用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;