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

news2025/6/2 5:03:47

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

  • 片上资源/外设
  • 引脚定义表
  • 启动配置
  • 推挽开漏
    • oc/od 门漏极/集电极
  • 电阻的上拉下拉
  • 输入捕获
  • 输入捕获通道
  • 主从触发模式
  • 输入捕获基本结构
  • PWMI基本结构
  • PWM
  • PSC ARR CRR
  • 输入捕获模式测频率
    • TIM_PrescalerConfig()
    • 初始化输入捕获
    • 测频法测周法
  • PWMI模式测频率占空比
  • 定时中断基本结构
    • 预分频器PCR
  • TIM编码器接口

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

https://blog.csdn.net/GQ_Sonofgod/article/details/105427872
https://www.cnblogs.com/leo0621/p/8833197.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1592904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[C++][算法基础]Dijkstra求最短路径I(稠密图)

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,所有边权均为正值。 请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出 −1。 输入格式 第一行包含整数 n 和 m。 接下来 m 行每行包含三个整…

AI图书推荐:如何在课堂上使用ChatGPT 进行教育

ChatGPT是一款强大的新型人工智能,已向公众免费开放。现在,各级别的教师、教授和指导员都能利用这款革命性新技术的力量来提升教育体验。 本书提供了一个易于理解的ChatGPT解释,并且更重要的是,详述了如何在课堂上以多种不同方式…

TQ15EG开发板教程:在MPSOC上运行ADRV9009(vivado2018.3)

首先需要在github上下载两个文件,本例程用到的文件以及最终文件我都会放在网盘里面, 地址放在最后面。在github搜索hdl选择第一个,如下图所示 GitHub网址:https://github.com/analogdevicesinc/hdl/releases 点击releases选择版…

关于ARM的一些问题

一,arm的工作模式有哪些? User:非特权模式 FIQ:高优先级中断进入 IRQ:低优先级中断进入 Supervisor:当复位或软中断指令进入 Abort: 当存取异常时 Undef:当执行未定义指令时会进入这种模式 System:使用和User模式相同…

Asterisk 21.2.0编译安装经常遇到的问题和解决办法之卸载pjsip

目录 会安装也要会卸载make uninstallldconfig 会安装也要会卸载 有些人就只会装。 最常见的场景就是需要卸载之前版本的pjproject。 一般来说,其他版本的 pjproject 会被作为静态链接库安装。这些库跟 Asterisk可能不兼容。 因此,在安装正确版本的pjpro…

基于Pytorch实现图像分类——基于jupyter

分类任务 网络基本构建与训练方法,常用函数解torch.nn.functional模块nn.Module模块 MNIST数据集下载 from pathlib import Path import requestsDATA_PATH Path("data") PATH DATA_PATH / "mnist"PATH.mkdir(parentsTrue, exist_okTrue)U…

C语言之typeof用法实例(九十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

MySQL-触发器:触发器概述、触发器的创建、查看删除触发器、 触发器的优缺点

触发器 触发器1. 触发器概述2. 触发器的创建2.1 创建触发器语法2.2 代码举例 3. 查看、删除触发器3.1 查看触发器3.2 删除触发器 4. 触发器的优缺点4.1 优点4.2 缺点4.3 注意点 注:此为笔者学习尚硅谷-宋红康MySQL的笔记,其中包含个人的笔记和理解&#…

APIGateway的认证

APIGateway的支持的认证如下: 我们从表格中可以看到,HTTP API 不支持资源策略的功能,另外是通过JWT的方式集成Cognito的。 对于REST API则是没有显示说明支持JWT认证,这个我们可以通过Lambda 自定义的方式来实现。 所以按照这个…

【C Hash Map from Redis】

将Redis源码中的哈希表底层逻辑提取,并进行最小demo级测试将对应文件抽出,通过宏替换等方式保证源码编译通过main.c编写测试demo ,注册哈希函数和值比较函数(必选项) /* Hash Tables Implementation.** This file imp…

ThingsBoard通过服务端获取客户端属性或者共享属性

MQTT基础 客户端 MQTT连接 通过服务端获取属性值 案例 1、首先需要创建整个设备的信息,并复制访问令牌 ​2、通过工具MQTTX连接上对应的Topic 3、测试链接是否成功 4、通过服务端获取属性值 5、在客户端查看对应的客户端属性或者共享属性的key 6、查看整个…

MySQL之索引失效、覆盖、前缀索引及单列、联合索引详细总结

索引失效 最左前缀法则 如果索引了多列(联合索引),要遵守最左前缀法则,最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索引将部分失效(后面的字段索引失效)。 联合索…

Golang(一):基础、数组、map、struct

目录 hello world 变量 常量,iota 函数 init函数和导包过程 指针 defer 数组和动态数组 固定长度数组 遍历数组 动态数组 len 和 cap 截取 切片的追加 map 四种声明方式 遍历map 删除 查看键是否存在 结构体 声明 作为形参 方法 封装 继承…

【PG-1】PostgreSQL体系结构概述

1. PostgreSQL体系结构概述 代码结构 其中,backend是后端核心代码,包括右边的几个dir: access:处理数据访问方法和索引的代码。 bootstrap:数据库初始化相关的代码。 catalog:系统目录(如表和索引的元数据…

富文本回显 p 标签?去不掉怎么办?如何解决?

使用前端框架富文本控件上传的上传的数据&#xff0c;回显到文本框时显示<p></p>标签&#xff0c;并且数据库里面的数据也为带有p标签的数据&#xff0c;如何去掉 解决办法 使用正则表达式来讲HTML的内容进行替换更改&#xff0c;在vue中定义方法 //移除HTML标签…

Linux的学习之路:9、冯诺依曼与进程(1)

摘要 本章主要是说一下冯诺依曼体系结构和进程的一部分东西。 目录 摘要 一、冯诺依曼体系结构 二、操作系统的概念 三、设计OS的目的 四、管理 五、进程的基本概念 六、PCB 七、在Linux环境下查看进程 八、使用代码创建进程 九、思维导图 一、冯诺依曼体系结构 如…

pyside6自定义部件库和软件框架的建设记录

自定义的部件库原则上尽量做到前后端分离&#xff0c;接口方便&#xff0c;复制简单。 单选框部件 # encoding: utf-8 ################################################### # 自定义的单选框 #################################################### 对外接口&…

【MYSQL】MySQL整体结构之系统服务

一、系统服务层 学习了MySQL网络连接层后&#xff0c;接下来看看系统服务层&#xff0c;MySQL大多数核心功能都位于这一层&#xff0c;包括客户端SQL请求解析、语义分析、查询优化、缓存以及所有的内置函数&#xff08;例如&#xff1a;日期、时间、统计、加密函数...&#xff…

【Godot4.2】CanvasItem绘图函数全解析 - 9.绘制表格

概述 之前介绍TextLine和TextParagraph的时候&#xff0c;提到了用制表符和设定列宽形式来绘制简易表格&#xff0c;但是很明显&#xff0c;单纯使用此种方式很难获得对表格的精确控制。 所以对于表格绘制问题&#xff0c;我决定单独开坑&#xff0c;单独深入研究。 目前比较…

Steam平台游戏发行流程

Steam平台游戏发行流程 大家好我是艾西&#xff0c;一个做服务器租用的网络架构师也是游戏热爱者&#xff0c;经常在steam平台玩各种游戏享受快乐生活。去年幻兽帕鲁以及雾锁王国在年底横空出世&#xff0c;幻兽帕鲁更是在短短一星期取得了非常好的成绩&#xff0c;那么作为游戏…