定时器相关
定时器的时钟来源
这里,定时器的时钟来源有 4 个:
1) 内部时钟(CK_INT)
2) 外部时钟模式 1:外部输入脚(TIx)
3) 外部时钟模式 2:外部触发输入(ETR),芯片手册里面有写
4) 内部触发输入(ITRx):使用 A 定时器作为 B 定时器的预分频器(A 为 B 提供时钟)。
上面图里的TIMxCLK是哪里来的,最高时钟72MHZ
中文参考手册80页
软件上谁来控制
TIMx_SMCR 寄存器
源码分析
typedef struct
{
uint16_t TIM_Prescaler;
uint16_t TIM_CounterMode;
uint16_t TIM_Period;
uint16_t TIM_ClockDivision;
uint8_t TIM_RepetitionCounter;
} TIM_TimeBaseInitTypeDef;
TIM_Prescaler ------> PSC寄存器
位15:0 PSC[15:0]:预分频器的值 (Prescaler value)
计数器的时钟频率CK_CNT等于fCK_PSC/(PSC[15:0]+1)。
PSC包含了当更新事件产生时装入当前预分频器寄存器的值
所以定时器的时钟频率 = ck_int / (PSC[15:0]+1)
image.png
TIM_CounterMode----------> 计数的方式
TIM_Period--------------------->ARR 重装载寄存器
在向上计数模式中,计数器从0计数到自动加载值(TIMx_ARR计数器的内容),
从下图中看0也算一个周期,即arr的值如果为1,其实计数了2个定时周期。
TIM_ClockDivision ----------->CKD是对于输入的分频,在输入捕获的时候要用到,相当于滤波
步进电机
42步进电机
蓝A+,红A-,绿B+,黑B-
image.png时钟相关
RCC_CFGR 来控制APB2,APB1和系统时钟的关系,也就是分频系数怎么确定
image.png
PWM输出
有一个比较寄存器,0-100向上计数,比较寄存器的值是50的话,周期相当于就是100*定时器频率, 占空比通过比较寄存器调整
Systeminit函数进行初始化
PWM输出的框图
图125 捕获/比较通道的输出部分(通道1)
110: PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电平(就是高电平),否则为
无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。
111: PWM模式2- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为无效电平,否则为
有效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为有效电平,否则为无效电
平。
注1:一旦LOCK级别设为3(TIMx_BDTR寄存器中的LOCK位)并且CC1S=’00’(该通道配置成输
出)则该位不能被修改。
注2:在PWM模式1或PWM模式2中,只有当比较结果改变了或在输出比较模式中从冻结模式
切换到PWM模式时, OC1REF电平才改变。
PWM1模式是CNT < CCR1,通道1为有效电平,但是最终输出的电平通过谁来控制呢, CCER.CC1P
CCER:CC1P位:
0: OC1高电平有效
1: OC1低电平有效
如果PWM1模式,CCER:CC1P为0, 当CNT < CCR1时就会输出高电平,CCER:CC1P为1, 当CNT < CCR1时, 输出低电平
PWM怎么设置
必须通过设置TIMx_CCMRx寄存器的OCxPE位使能相应的预装载寄存器,最后还要设置TIMx_CR1寄存器的ARPE位, (在向上计数或中心对称模式中)使能自动重装载的预装载寄存器
void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);//开启预装载寄存器
OC1PE: 输出比较1预装载使能 (Output compare 1 preload enable)
0:禁止TIMx_CCR1寄存器的预装载功能,可随时写入TIMx_CCR1寄存器,并且新写入的数
值立即起作用。
1:开启TIMx_CCR1寄存器的预装载功能,读写操作仅对预装载寄存器操作, TIMx_CCR1的
预装载值在更新事件到来时被传送至当前寄存器中。
/*********************************************/
void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);
PWM对应的gpio是哪一个引脚
image.png
PB5可以复用成定时器3通道2PWM输出引脚
image.png
gpio口应该怎么样配置
image.png
/*定时器的频率是10KHZ, 计一个数0.1ms, */
tim3_ch2_pwm_init(4999,7199, 2500);
串口通信
单工:
数据传输只支持数据在一个方向上传输
半双工:
允许数据在两个方向上传输,但是,在某一时刻,只允许数
据在一个方向上传输,它实际上是一种切换方向的单工通信;
全双工:
允许数据同时在两个方向上传输,因此,全双工通信是两个
单工通信方式的结合,它要求发送设备和接收设备都有独立
的接收和发送能力。
同步通信:带时钟同步信号传输。
-SPI,IIC通信接口
异步通信:不带时钟同步信号。
-UART(通用异步收发器),单总线
image.png
UART:通用异步收发器
USART:通用同步异步收发器
串口通信的过程
image.png
串口寄存器相关
引脚对应关系
image.png image.png
网友评论