b站江科大stm32笔记(持续更新)
-
- [oc/od 门漏极/集电极](#oc/od 门漏极/集电极)
-
[PSC ARR CRR](#PSC ARR CRR)
-
系列:主流系列STM32F1
-
内核:ARM Cortex-M3
-
主频:72MHz RAM:20K(SRAM) ROM:64K(Flash)
-
供电:2.0~3.6V(标准3.3V)
-
封装:LQFP48
片上资源/外设
NVIC和SysTick是位于Cortex内核内部的外设
剩下的位于内核外部
ICode Dcode主要用来连接Flash闪存,Flash中存储写的程序
AHB先进高性能总线
APB先进外设总线
APB2性能一般高一些72AHB1一般32
所以APB2一般连接重要的外设
DMA替CPU完成一些简单的例如数据搬运的工作
引脚定义表
红色电源(S)相关,蓝色最小系统(I、O)相关,绿色IO口,功能口相关
推荐使用加粗的IO口
这5个没加粗的端口如果全部被配置成普通端口则无法下载程序,需要用串口方式下载程序了(正常是用STLink或者JLink)
启动配置
主闪存存储器:最常用模式
系统存储器:存储BootLoader,接收串口数据,然后刷新到主闪存中
四个供电
VBAT备用电源
STM32晶振一般8MHZ经过锁相环倍频,得到72MHZ晶振连接到5、6号引脚
OSC32意思是32.768KHz晶振
32768是2^15内部RTC电路经过2的15次方分频,可以生成1秒的时间信号
模拟输入接受模拟量,复用功能输入接收数字量所以在施密特触发器前面
推挽开漏
oc/od 门漏极/集电极
od open drain(漏极开路)
oc open collecter(集电极开路)
漏极------mos管(场效应管)有三个极,漏极、源极和栅极。
集电极------三极管 基极 集电极 发射极
所以od针对mos管 oc针对三极管
电阻的上拉下拉
右边相当于左边
电阻越小,拉的力度越大
上拉下拉电阻,使用方式不同名字不同 上拉电阻接在固定高电平vcc,使其电压空闲状态保持高电平 下拉与gnd相接,空闲状态保持低电平
推挽高低电平都是驱动能力 开漏模式低电平才有驱动能力,浮空不行
为了避免引脚悬空(io口引脚什么都不接)导致的输入数据不确定要加上上拉电阻和下拉电阻 上拉电阻和下拉电阻阻值比较大是弱拉,为了尽量不影响正常输入操作
输入捕获
IC(Input Capture) 输入捕获
- 输入捕获模式下,当引脚车险指定电平跳变时,当前CNT的值被锁存到CCR中,可用于测量PWM波形的频率,占空比等。
- 每个高级定时器和通用定时器都拥有四个输入捕获通道基本定时器没有输入捕获功能
- 可配置为PWMI模式,同时测量频率和占空比
- 可配合主从触发模式,实现硬件全自动测量
四个输入捕获和四个输出比较通道,公用4个CCR寄存器
共同占用CH1和ch4,所以对于同一个定时器输入捕获和输出比较只能用一个
输入捕获通道
主从触发模式
从模式自动清空
输入捕获基本结构
PWMI基本结构
可以同时测量频率和占空比
下方通道CCR1是整个周期的计数值,CCR2是高电平期间计数值
PWM
PWM(Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、工控等方面。
PSC ARR CRR
PSC预分频系数
ARR计数
CRR比较值
如果要产生一个频率1KHz,占空比50%,分辨率为1%的PWM波形
PWM频率:72M/(PSC+1)/(ARR+1)=1000
PWM占空比:Duty=CCR/(ARR+1)=50%
PWM分辨率:Reso= 1/(ARR+1)=1%
解得ARR+1=100、CCR=50、PSC+1=720
PSC预分频器
ARR计数
人耳听到频率在20KHz以上的不会有蜂鸣声,由公式可得
比较,与设定的值比较从而确定PWM
输入捕获模式测频率
调节频率通过PSC(预分频系数),调节ARR(计数值)会影响占空比
TIM_PrescalerConfig()
影子寄存器(又名缓冲寄存器)
立刻生效切断波形开启新周期,会出现不完整周期或者下个周期在生效
初始化输入捕获
步骤如上图输入捕获基本结构
- 开启时钟
- 配置GPIO
- 配置时基单元
选择定时器3对应的引脚PA6
测频法测周法
- 测频法闸门内计次 一秒内有多少个上升沿频率就是多少 闸门时间结束时可能卡在中间,所以正负一误差
- 测周法,只测一个周期就能出一次结果,所以结果更新快,但是会受噪声影响,波动比较大
高频适合测频法, 低频适合测周法
(注意右边测周法待测频率要尽量低,取极端亲口光黑色小缺口甚至比蓝色缺口大了,一此都记不到)
PWMI模式测频率占空比
两个通道同时捕获同一个引脚
目前能测最低频率为PSC=72MHz/72=1MHz ARR=65535 f=PSC/ARR~=15Hz;
要测更低频率只能修改PSC(预分频系数)改小点,提高标准频率。
定时中断基本结构
预分频器PCR
分频系数增大后定时器始终周期变大,计数值也变大
TIM编码器接口
- Encoder Interface 编码器接口 编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度
- 每个高级定时器和通用定时器都拥有1个编码器接口(c8t6只有四个定时器,每个可接一个编码器,也可以用终端来接编码器,但是消耗软件资源(硬件不够软=软件来凑))
- 两个输入引脚借用了输入捕获的通道1和通道2每个定时器的CH1和CH2(3、4不能接编码器)
1:TIM1是一个完整的电机控制用定时器外设,TIM1_CH1和TIM1_CH1N,用于驱动上下两个功率管。如果Deadtime为0,则 TIM1_CH1N是TIM1_CH1的反相,如果Deadtime不为0,则在TIM1_CH1N上插入了Deadtime,防止上下功率管同时导通。
2:TIM1_CH1N是TIM1_CH1的互补输出 ,用于TIM1的同步PWM模式。
在使用定时器的时候,在引脚复用功能中看到了TIM2_CH1_ETR,这个ETR是什么意思呢?
答:TIM2_CH1_ETR表示两个功能选一个,分别是TIM2_CH1和TIM2_ETR,TIM2_CH1表示让这个引脚作为TIM2的第一通道对应引脚;TIM2_ETR表示让这个引脚作为TIM2外部时钟提供引脚,这种功能有两种模式,如下图: