2022-2-15-PWM

发布时间 2023-09-17 20:47:14作者: Yecgaa1
layout: post
title: 蓝桥杯备赛
categories: 日志
tags: 
    - 比赛 
    - 大二
BGImage: 'https://github.xutongxin.me/https://raw.githubusercontent.com/xutongxin1/PictureBed/master/img0/20220310123346.png'
jekyll-theme-WuK:
    musicid: '34367899'

单独开一份文章,为我复习pwm做准备

PWM频率:

Fpwm =Tclk / ((arr+1)*(psc+1))(单位:Hz)

  • arr 是计数器值
  • psc 是预分频值

占空比:

  • duty circle = TIM3->CCR1 / arr(单位:%)
  • TIM3->CCR1 用户设定值

比如 定时器频率Tclk = 72Mhz arr=499 psc=71 那么PWM频率就是720000/500/72= 2000Hz,即2KHz

arr=499,TIM3->CCR1=250 则pwm的占空比为50%

改CCR1可以修改占空比,修改arr可以修改频率

重载计数器原理

若配置脉冲计数器TIMx_CNT为向上计数,而重载寄存器TIMx_ARR配置为N,即TIMx_CNT的当前计数值数值X在TIMxCLK时钟源的驱动下不断累加,当TIMx_CNT的数值X大于N时,会重置TIMx_CNT数值为0重新计数。
而在TIMxCNT计数的同时,TIMxCNT的计数值X会与比较寄存器TIMx_CCR预先存储了的数值A进行比较,当脉冲计数器TIMx_CNT的数值X小于比较寄存器TIMx_CCR的值A时,输出高电平(或低电平),相反地,当脉冲计数器的数值X大于或等于比较寄存器的值A时,输出低电平(或高电平)。
如此循环,得到的输出脉冲周期就为重载寄存器TIMx_ARR存储的数值(N+1)乘以触发脉冲的时钟周期,其脉冲宽度则为比较寄存器TIMx_CCR的值A乘以触发脉冲的时钟周期,即输出PWM的占空比为A/(N+1)。

记得PWM启动需要一个函数

定时器工作

定时器周期

img

TCLK=72MHZ

如TOUT=(5000*7200)/72 us = 500ms

image-20210304124958031

在main.c主函数上方初始化使能定时器2

  /* USER CODE BEGIN 2 */
    /*使能定时器中断*/
    HAL_TIM_Base_Start_IT(&htim2);
  /* USER CODE END 2 */

在main.c主函数下方添加中断回调函数

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
    static unsigned char ledState = 0;
    if (htim == (&htim2))
    {
        if (ledState == 0)
            HAL_GPIO_WritePin(GPIOE,GPIO_PIN_15,GPIO_PIN_RESET);
        else
            HAL_GPIO_WritePin(GPIOE,GPIO_PIN_15,GPIO_PIN_SET);
        ledState = !ledState;
    }
}

I2C实质

i2c设备数量理论无限,但是电阻加大会让信号衰减

发送8个数据,然后等待ack,如果拉低就正常发出,否则就是异常了

蓝桥杯使用的是IO口模拟i2c

ADC实质

https://blog.csdn.net/as480133937/article/details/99627062

R1-R15寄存器

image-20220614135640254

每个通道都有3个事件标志DMA半传输、DMA传输完成和DMA传输出错)

每个 AD 通道可以配置独立的采样时间

image-20220614141543138

备份寄存器(BKP)应用

不可用于启动程序

image-20220614164349554

image-20220614164443624

ARM Cortex M3 使用Thumb-2 指令集

STM32 IO 端口寄存器必须以 32 位字的方式访问

Cortex-M3 处理器可以使用 2 个堆栈,不是4个

在 STM32 处理器中一个 DMA 请求,至少占用8个周期的 CPU 访问系统总线
时间

image-20220617150229831

N 个触发器构成的计数器中,有效状态最多有2^N

STM32F103RBT6可采用( )位来编辑中断优先级。答案:4