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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI PC元年,华为的一张航海图、一艘渡轮和一张船票

今天,从学术研究者到产业投资者,无不认为大模型掀起了一场人工智能的完美风暴。 所谓“完美风暴”,指的是一项新技术的各个要素,以新的方式互相影响、彼此加强,组合在一起形成了摧枯拉朽般的力量。 而我们每个人&#…

Spark-Scala语言实战(16)

在之前的文章中,我们学习了三道任务,运用之前学到的方法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-Scala语言实战&#x…

(N-149)基于微信小程序网上商城系统

开发工具:IDEA、微信小程序 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术:vue、uniapp 服务端技术:springbootmybatisredis 本系统分微信小程序和管理后台两部分&a…

使用Pandas实现股票交易数据可视化

一、折线图:展现股价走势 1.1、简单版-股价走势图 # 简洁版import pandas as pdimport matplotlib.pyplot as plt# 读取CSV文件df pd.read_csv(../数据集/格力电器.csv)data df[[high, close]].plot()plt.show() 首先通过df[[high,close]]从df中获取最高价和收盘…

【一招鲜】-阿里云服务器安全更新 RHSA-2021:3889: java-1.8.0-openjdk 安全和BUG修复更新

形似这种: RHSA-2021:3889: java-1.8.0-openjdk 安全和BUG修复更新 #1 查看可更新的软件java yum list updates |grep java #2 如果有可更新软件,则进行更新 yum -y update java-1.8.0-openjdk.x86_64 形似这种: RHSA-2021:4782: openssh …

你的系统是如何跟MySQL打交道的

1、Java 工程师眼中的数据库是什么东西? 从今天开始,我们将要开始一个MySQL的专栏,一起来研究MySQL数据库的底层原理和各种实践案例,以及互联网公司的技术方案。 现在我们先来看看,在一个Java工程师眼中的数据库是什么东西? 平时…

mp3怎样才能转换成wav格式?音频互相转换的方法

一,什么是WAV WAV,全称为波形音频文件(Waveform Audio File Format),是一种由微软公司和IBM公司联合开发的音频文件格式。自1991年问世以来,WAV格式因其无损的音频质量和广泛的兼容性,成为了多…

【C++】1390-请从键盘读入一个四位整数,求这个四位整数各个位的和是多少?

问题:1390-请从键盘读入一个四位整数,求这个四位整数各个位的和是多少? 类型:基础问题 题目描述: 请从键盘读入一个四位整数,求这个四位整数各个位的和是多少? 输入: 一个四位整…

thinkphp6入门(23)-- 如何导入excel

1. 安装phpexcel composer require phpoffice/phpexcel composer update 2. 前端 <form class"forms-sample" action"../../xxxx/xxxx/do_import_users" method"post" enctype"multipart/form-data"><div class"cont…

再写-全景拼接

全景拼接 1. 将读取进行灰度转化&#xff0c;并且输出图像&#xff0c;关键点和计算描述 import cv2 import numpy as np# 将读取进行灰度转化&#xff0c;并且输出图像&#xff0c;关键点和计算描述 image_left cv2.imread("C:\\Users\\HONOR\\Desktop\\image\\pinjie…

Day19-【Java SE进阶】网络编程

一、网络编程 1.概述 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。java.net,*包下提供了网络编程的解决方案! 基本的通信架构 基本的通信架构有2种形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务端)。 网络通信的…

轮腿机器人-五连杆正运动学解算

轮腿机器人-五连杆与VMC 1.五连杆正运动学分析2.参考文献 1.五连杆正运动学分析 如图所示为五连杆结构图&#xff0c;其中A&#xff0c;E为机器人腿部控制的两个电机&#xff0c;θ1,θ4可以通过电机的编码器测得。五连杆控制任务主要关注机构末端C点位置&#xff0c;其位置用直…

【Unity】常见性能优化

1 前言 本文将介绍下常用的Unity自带的常用优化工具&#xff0c;并介绍部分常用优化方法。都是比较基础的内容。 2 界面 2.1 Statistics窗口 可以简单查看Unity运行时的统计数据&#xff0c;当前一帧的性能数据。 2.1.1 Audio 音频相关内容。 Level&#xff1a;音量大小&a…

物联网云组态平台

TopStack 物联网云组态平台&#xff0c;提供从边缘感知及设备到云的数据采集、分析、可视化软件服务&#xff0c;提供完善的平台开发环境&#xff0c;协助客户完善垂直领域的业务应用开发。与伙伴共同打造多元产业物联网解决方案。 产品采用微前端、微服务架构进行设计&#x…

Testng测试框架(7)--测试运行

忽略测试 TestNG可以让你忽略类、特殊包、包及其子中的所有Test方法。 当在测试方法级别使用Ignore 注解&#xff0c;在功能上与Test(enabledfalse).一样。 以下例子将忽略类中所有tests。 import org.testng.annotations.Ignore; import org.testng.annotations.Test; Ign…

day9 | 栈与队列 part-1 (Go) | 232 用栈实现队列、225 用队列实现栈

今日任务 栈与队列的理论基础 (介绍:代码随想录)232 用栈实现队列(题目: . - 力扣&#xff08;LeetCode&#xff09;)225 用队列实现栈 (题目: . - 力扣&#xff08;LeetCode&#xff09; ) 栈与队列的理论基础 栈 : 先进后出 队列: 后进先出 老师给的讲解:代码随想录 …

left join limit offset 分页查询问题

1. LEFT JOIN 简介 在开始讨论LEFT JOIN的使用方法之前&#xff0c;让我们先简要回顾一下LEFT JOIN的概念。 LEFT JOIN是一种用于将左表和右表连接起来的操作。它会返回左表中的所有记录&#xff0c;并且对于每条左表记录&#xff0c;如果在右表中找到符合条件的记录&#xf…

js+网络摄像头实现人体肢体关键点动作捕获

最近有一个项目&#xff0c;客户需要用户人体姿势识别&#xff0c;进行表演考核用途&#xff0c;或者康复中心用户恢复护理考核&#xff0c;需要用摄像头进行人体四肢进行肢体关键点对比考核&#xff0c;资料还是太少了。只有个别大佬发了部分技术指导。感觉写的不错。 阿里云…

算法第四十一天-排除排序链表中的重复元素Ⅱ

排除排序链表中的重复元素Ⅱ 题目要求 解题思路 题意&#xff1a;在一个有序链表中&#xff0c;如果一个节点的值出现不止一次&#xff0c;那么把这个节点删除掉 重点&#xff1a;有序链表&#xff0c;所以&#xff0c;一个节点的值出现不止一次&#xff0c;那么他们必相邻。…

CMC学习系列 (7):β 范围 EEG-EMG 相干性与皮质光谱功率有关

CMC学习系列:β 范围 EEG-EMG 相干性与皮质光谱功率有关 0. 引言1. 主要贡献2. 方法2.1 目标2.2 实验范式2.3 数据处理和分析 3. 结果4. 讨论5. 总结欢迎来稿 论文地址&#xff1a;https://www.sciencedirect.com/science/article/abs/pii/S1053811907001760 论文题目&#xff…