b站江科大stm32笔记(持续更新)

b站江科大stm32笔记(持续更新)

片上资源/外设

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外部时钟提供引脚,这种功能有两种模式,如下图:

https://blog.csdn.net/GQ_Sonofgod/article/details/105427872

https://www.cnblogs.com/leo0621/p/8833197.html

相关推荐
alfiy25 分钟前
Elasticsearch学习笔记(五)Elastic stack安全配置二
笔记·学习·elasticsearch
pumpkin8451436 分钟前
CXO、CRO、CMO、CDMO相关概念
笔记
结衣结衣.1 小时前
C++ 类和对象的初步介绍
java·开发语言·数据结构·c++·笔记·学习·算法
Starry_hello world4 小时前
二叉树实现
数据结构·笔记·有问必答
唐·柯里昂79811 小时前
[3D打印]拓竹切片软件Bambu Studio使用
经验分享·笔记·3d
sml_542111 小时前
【笔记】连续、可导、可微的概念解析
笔记·线性代数
新手unity自用笔记11 小时前
项目-坦克大战学习-子弹的移动与销毁
笔记·学习·c#
Word码12 小时前
数据结构:栈和队列
c语言·开发语言·数据结构·经验分享·笔记·算法
我命由我1234512 小时前
SSL 协议(HTTPS 协议的关键)
网络·经验分享·笔记·学习·https·ssl·学习方法
丶Darling.13 小时前
代码随想录 | Day26 | 二叉树:二叉搜索树中的插入操作&&删除二叉搜索树中的节点&&修剪二叉搜索树
开发语言·数据结构·c++·笔记·学习·算法