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

本文详细介绍了STM32F1系列的片上资源、外设配置,包括NVIC和SysTick,以及TIM定时器的输入捕获、PWM、预分频器和编码器接口等特性。涵盖了启动配置、模拟输入处理、推挽开漏电路和上拉下拉电阻等内容。
摘要由CSDN通过智能技术生成

  • 系列:主流系列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针对三极管
在这里插入图片描述
在这里插入图片描述

电阻的上拉下拉

右边相当于左边
在这里插入图片描述
中间接一根线链接信号域,下方电阻变为开关,开关闭合能在信号域中产生不同电压,闭合为0,打开为1
在这里插入图片描述

在这里插入图片描述
电阻越小,拉的力度越大
在这里插入图片描述
在这里插入图片描述
上拉下拉电阻,使用方式不同名字不同 上拉电阻接在固定高电平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

  • 45
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
科大STM32笔记是关于STM32单片机的学习笔记,其中涵盖了一些关于按键初始化和按键读取的代码示例。在这些代码中,通过引用中的Key_Init函数来对按键进行初始化,然后通过引用中的Key_GetNum函数来获取按键按下的键码值。代码中使用了STM32的GPIO模块来配置引脚的工作模式和读取引脚的电平状态。此外,引用中提到STM32内部集成了硬件收发电路,可以通过写入控制寄存器CR和数据寄存器DR来实现与外设的通信,并通过读取状态寄存器SR来了解外设电路的当前状态。这些寄存器的使用可以实现对外设的控制和监测,减轻CPU的负担。因此,科大STM32笔记主要是介绍了STM32单片机的相关知识和编程技巧。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [STM32学习笔记 -- I2C(科大)](https://blog.csdn.net/weixin_61244109/article/details/131002266)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [STM32科大学习笔记](https://blog.csdn.net/weixin_38647099/article/details/128337708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值