单片机答辩
一、时钟树1.1 基础时钟源1.1.1 三种振荡器1. RC振荡器无需外部电路需要电源成本低、精度低、启动快2. 无源晶体振荡器需要外部电路匹配电容芯片内部电路无需单独供电成本中、精度高、启动速度中3. 有源晶体振荡器无需外部电路需要单独供电成本高、精度高、启动速度中1.1.2 四种时钟源1. HSI内部高速时钟来源内部 16MHz RC 振荡器用途直接做系统时钟或作为 PLL 输入优点成本低无需外部元件、启动速度快缺点精度不如外部晶振即使校准后自带快但不准2. HSE外部高速时钟来源外部有源晶振或无源晶振用途直接做系统时钟或作为 PLL 输入优点精度高缺点需要外部元件成本高启动慢外接准但启动慢3. LSI内部低速时钟来源内部 RC 振荡器约 32kHz用途独立看门狗IWDG、RTC低精度场景特点功耗极低可在停机和待机模式下保持运行缺点精度差频率随温度波动自带低速省电但不准4. LSE外部低速时钟来源外部 32.768kHz 晶振或陶瓷谐振器用途RTC实时时钟/日历、其他定时功能优点功耗低、精度高缺点需要外部晶振外接晶振准又省电1.2 SYSCLK系统时钟1.2.1 SYSCLK含义SYSCLK 是系统时钟也就是 CPU、内存、总线AHB/APB等核心部件的工作时钟决定了处理器执行指令的速度。1.3 外设时钟1.3.1 HCLKAHB 总线时钟1 HCLK含义HCLK High-speed Clock是AHB总线时钟由 SYSCLK系统时钟经过AHB PrescalerAHB预分频器分频后得到为 AHB 总线上的高速外设提供时钟。分频器把系统时钟分配成不同的时钟域然后输出给不同的模块使用不同模块的最大时钟频率不一样2 HCLK 提供时钟的模块模块说明DMA直接存储器访问高速数据传输Cortex System Timer系统滴答定时器常用于操作系统心跳FCLK处理器自由运行时钟休眠时仍保持运行APB1低速外设总线最大42MHzAPB2高速外设总线最大84MHzPTP精确时间协议用于网络时钟同步以太网IEEE 15881.3.2 外设控制器时钟1 外设时钟来源总线最大频率一句话作用典型外设AHB168MHz给高速核心模块提供时钟DMA、GPIO、CRC、Flash、SRAMAPB142MHz给低速外设提供时钟USART2/3/4/5、I2C1/2/3、SPI2/3、CAN、DAC、PWRAPB284MHz给高速外设提供时钟USART1、SPI1、ADC1/2/3、TIM1/8/9/10/11、SYSCFG外设用哪条总线就由哪条总线的时钟驱动各总线频率不同满足不同外设的速度需求。当 APB1 预分频器分频系数 APB1大于 1时定时器时钟会自动乘以 2让定时器获得比总线更高的时钟以提高 PWM 精度和计时分辨率。2 一条总线上挂多个外设的含义同一条总线上的外设共享同一个时钟源如果该总线的时钟被关闭上面挂载的所有外设都会停止工作每个外设可以独立控制自己的时钟使能在RCC寄存器中配置1.4 RTC 时钟源RTC实时时钟的输入时钟可以由以下三种来源提供通过RTC Clock MuxRTC时钟选择器选择时钟源类型典型频率说明LSE外部低速晶振32.768kHz精度高功耗低RTC首选LSI内部低速RC~32kHz精度低省电但不准HSE分频后外部高速晶振4~26MHz分频后得到1MHz以内需要外接晶振分频后给RTC用二、UART控制器原理2.1 定义2.1.1 串口通讯串口通讯是一种串行传输方式即数据一位一位地按顺序进行发送和接收。在嵌入式系统中它通常由UART控制器硬件实现。由于接线少、协议简单它广泛用于嵌入式系统、传感器、单片机与外围设备之间的数据交换。2.1.2 波特率码元指传输线上的一个信号变化在串口里就是一个电平位宽波特率1秒内传输的码元个数单位Baud比特率1秒内传输的比特个数单位bps通用公式比特率 波特率 × 每个码元对应的二进制位数在普通串口UART中每个码元携带1个bit(高低电平的信息)因此波特率 比特率数值上相等两个设备的波特率需一致不然会造成数据丢失比特率的计算USARTDIV 的小数部分存入 BRR 寄存器时16倍采样OVER80小数实际值 ×16取整数存入4位精度 1/168倍采样OVER81小数实际值 ×8取整数存入3位精度 1/8小数乘以16或8是为了算出这个小数相当于多少个1/16或1/8刻度结果取整存入寄存器。2.1.3 数据帧1 一帧完整的数据帧组成组成部分说明起始位以低电平开始表示一帧数据的开始数据位通常为8 位也可选 9 位实际传输的有效数据校验位可选奇校验/偶校验用于简单错误检测停止位以高电平结束常见为 1 位也可选 0.5、1.5、2 位2 数据位与校验位的关系配置为8 位数据位从低位开始传 启用校验 → 实际有效数据只有7 位1 位被校验位占用配置为9 位数据位→ 通常是为了使用校验位常用模式8N18 位数据 无校验 1 位停止位串口一帧数据由起始位低电平开始、数据位常用8位、可选校验位奇/偶校验占用数据位、停止位高电平结束常用1位组成。3 奇偶校验规则校验类型规则奇校验一帧数据中高电平个数为奇数偶校验一帧数据中高电平个数为偶数发送方根据要发送的数据计算出校验位奇或偶并附加在帧中发送接收方收到数据后用同样的规则重新计算校验位如果与接收到的校验位不一致则判定该帧数据传输过程中发生了错误。弊端校验位只能检测单比特错误不能纠正错误也不能检测偶数个比特错误。2.2 串口收发流程2.2.1 DR 寄存器在许多串口控制器如 STM32中TDR和RDR实际上是共用同一个地址的DR数据寄存器写 DR→ 数据进入TDR发送读 DR→ 数据来自RDR接收DR 是程序与串口控制器之间唯一的“数据接口”。DR 寄存器作为程序与串口硬件之间的缓冲避免了直接操作慢速移位寄存器导致的时序耦合让 CPU 能以字节/字为单位一次性读写数据而硬件独立完成逐位收发。2.2.2 发送流程步骤操作说明1将数据写入内存准备要发送的数据2程序将内存数据写入DR 寄存器DR 自动将数据送入 TDR3TDR 数据自动转入发送移位寄存器从低位开始硬件自动完成4移位寄存器将数据从TX 引脚逐位发出串行输出2.2.3 接收流程步骤操作说明1RX 引脚接收数据逐位进入接收移位寄存器2接收移位寄存器接收完整一帧硬件自动完成3数据自动转入RDR 寄存器硬件自动完成RDR 可通过 DR 读取4程序读取DR 寄存器从高位开始读实际读到的是 RDR 的数据5将数据存入内存使用程序处理收到的数据2.3 硬件流控2.3.1 硬件流控含义一种通过物理信号线自动控制数据传输的机制用于协调两个设备之间的数据流动防止数据丢失或溢出。2.3.2 硬件流控 vs 软件流控对比项硬件流控 (RTS/CTS)软件流控 (XON/XOFF)实现方式物理信号线在数据流中插入特殊字节响应速度实时需要解析数据较慢占用数据带宽不占用特殊字节可能干扰二进制数据额外接线需要2根额外信号线无需额外接线2.3.3 实际应用nCTS表示低电平的时候信号有效nRTS 是本设备的“接收通知”告诉对方“我能收/不能收”nCTS 是本设备的“发送许可”告诉本设备“对方允许我发/禁止我发”信号线方向本设备连接对象本设备中的作用有效电平TX输出对方的 RX发送数据数据信号RX输入对方的 TX接收数据数据信号nRTS输出对方的 nCTS告诉对方我是否准备好接收低电平准备好nCTS输入对方的 nRTS判断对方是否允许我发送低电平允许发送2.5 CRC1 作用前面的检验协议头、长度、结束位只能验证数据格式的“完整性”和“边界”而CRC校验能验证数据内容的“正确性”防止数据在传输中发生比特错误比如0变1而格式却碰巧正确。2 原理每个传感器自带的原理不同比如PM2.5是数据位相加接收的时候会得到数据位和校验位传感器发送的“数据位”按固定规则如累加和、异或、CRC计算出一个“校验位”一并发出接收端用同样的规则重新计算收到的数据位若结果 ≠ 收到的校验位则说明传输或数据出错。3 与奇偶校验的区别奇偶校验是“简陋版”只能发现奇数个错误CRC是“加强版”能发现几乎所有错误工业标准都在用它。1.6 电平标准1 三种常见电平标准对比标准逻辑 0 电平逻辑 1 电平特点TTL0V ~ 0.8V2.4V ~ 5V短距离1m板级通信RS2323V ~ 15V-3V ~ -15V长距离约15m负逻辑RS485A-B-2V ~ -6VA-B2V ~ 6V超长距离1200m差分抗干扰TTL和RS232都是一对一RS485一对多但是单向的而且同一时刻只能选一个设备进行通信2 转换芯片与常用接口电平标准转换芯片TTL ↔ 标准常用接口TTL不需要转换排针、杜邦线RS232MAX232、SP3232、MAX3232DB99针、DB25RS485MAX485、SP3485、MAX13487接线端子A/B、RJ453 Modbus 协议项目内容定义一种基于串行通信的工业通信协议目的为工业现场提供通用的通信标准功能实现不同设备之间的数据交换和控制一帧结构地址域 功能码 数据 差错校验地址域1字节1~247标识目标设备功能码操作类型如 0x03 读寄存器、0x06 写寄存器数据域寄存器地址、数量或具体数据内容差错校验RTU模式用CRCASCII模式用LRC通讯机制应答机制主机请求 → 从机响应三、DMA控制器原理3.1 介绍1 概念DMA 是一种无需 CPU 干预即可在外设与存储器之间直接传输数据的机制通过减少 CPU 开销来提升大量数据传输时的系统性能。CPU只需要一开始对DMA进行配置指定从哪个寄存器到哪个外部设备DAM搬完后会自动向CPU发送消息通知CPU搬完了2 DMA 的仲裁器STM32F407 有 2 个 DMA 控制器每个控制器有 8 个数据流每个数据流 有 8 个通道1 个数据流每次只能搬运 1 个通道的数据项目说明作用管理多个 DMA 通道对系统总线的竞争访问协调传输顺序软件优先级4级很高 高 中 低在 DMA_CCRx 寄存器中设置硬件优先级当软件优先级相同时通道编号越小优先级越高3 DMA事务操作说明从源地址读取数据通过 DMA_SxPAR外设地址或 DMA_SxM0AR存储器地址寻址从源端读取数据向目的地址写入数据通过 DMA_SxPAR 或 DMA_SxM0AR 寻址将读取的数据写入目的端传输计数器递减每次完整传输完成后DMA_SxNDTR 计数器减1记录剩余待传输的数据项数目3.2 DMA传输1 DMA 传输方向配置DIR[1:0]传输模式源地址目标地址00外设 → 存储器DMA_SxPAR外设地址DMA_SxM0AR存储器地址01存储器 → 外设DMA_SxM0AR存储器地址DMA_SxPAR外设地址10存储器 → 存储器DMA_SxM0AR源存储器地址DMA_SxM0AR目标存储器地址通过DMA_SxCR 寄存器的 DIR[1:0] 位选择传输方向2 FIFOFIFO 大小每个数据流都有一个独立的 4 字16 字节FIFO。工作流程启用 FIFO 后源地址中的数据不会直接由 DMA 搬运到目标地址。数据先从源地址读取存入 FIFO 缓冲区中。当 FIFO 中积累的数据达到预设的阈值时DMA 才会将数据从 FIFO 中取出写入到目标地址。核心特点FIFO 起到了缓冲作用可以将多个小数据量合并为一次突发传输提高总线利用效率。3.3 指针增量控制位说明DMA_SxCR 寄存器中的PINC 位控制外设地址指针是否递增MINC 位控制存储器地址指针是否递增。递增模式当设置为增量模式时每次传输完成后下一次传输的地址 前一次地址 增量值。增量值由数据宽度决定字节8位时加1半字16位时加2字32位时加4。常量模式当设置为保持常量时每次传输都使用同一个内存地址反复从同一位置读取数据或写入同一位置。典型应用递增模式适合传输数组或连续内存块。常量模式适合反复读写同一个外设寄存器如 ADC 数据寄存器。3.4 数据宽度数据宽度通过 DMA_SxCR 寄存器的 PSIZE外设数据宽度和 MSIZE存储器数据宽度位配置。直接模式直接模式下源和目标的传输数据宽度必须相等。宽度由 DMA_SxCR 中的 PSIZE 位定义MSIZE 位在此模式下无效。FIFO 模式使用内部 FIFO 时FIFO 进行数据对齐和打包源和目标的数据宽度可以通过 PSIZE 和 MSIZE 位分别编程支持 8 位、16 位或 32 位两者可以不同。宽度不等时的传输计数当 PSIZE 和 MSIZE 不相等时DMA_SxNDTR 寄存器中配置的传输数据项数目其数据宽度等于外设总线的宽度由 PSIZE 位定义。举例PSIZE 配置为半字16位则实际传输的字节数 2 × NDTNDT 为 DMA_SxNDTR 中的计数值。四、ADC控制原理4.1 介绍1 定义ADC的作用是将连续变化的模拟信号如电压转换为离散的数字信号供微处理器读取和处理。2 工作流程采样以固定时间间隔采样周期T采集连续模拟信号将其在时间上离散化。采样频率Fs1/T根据奈奎斯特定理Fs 2倍信号最高频率时原始信号可完全恢复。采样频率越高信号损失越小。量化将采样后幅值连续的信号进行分级用离散的等级值代替连续的幅值。量化方式有只舍不入和四舍五入两种量化间隔越小精度越高量化过程必然存在量化误差大小为一个量化间隔。编码将量化后的等级值转换为二进制数字信号输出供微处理器读取和处理。3 量化中的参数参考电压VREFADC量化的基准由 VREF正参考电压和 VREF−负参考电压共同决定。VREF范围 1.8V ~ VDDAVREF− 通常接地VSSA。量化间隔 (VREF−VREF−)/2的(分辨率位数)次方。STM32的参考电压通常为3.3V。分辨率决定将参考电压划分的份数用位数表示如8位、10位、12位通过 ADC_CR1.RES 位配置。分辨率越高量化间隔越小能测量的最小电压就越小精度越高。例如10位分辨率将电压分成1024份量化间隔 参考电压 / 2^10。4.2 常见的 ADC 类型1 并联比较型工作原理参考电压 VREF经电阻串R1~R8分出多个等间隔的比较电平输入电压 VIN同时与所有比较电平进行比较比较结果经编码器直接输出二进制数字D0,D1...。主要优缺点优点转换速度极快结构简单。缺点分辨率提高时比较器和电阻数量会指数级增加2的N次方的电阻2的N次方−1 个比较器功耗大、成本高、芯片面积大因此通常只用于低分辨率≤8位、超高速的场合。2 逐次逼近型二分算法逐次逼近型ADC采用二分搜索算法先比较输入电压与参考电压的1/2若输入大于1/2参考电压则保留该位为1并累加1/4参考电压继续比较否则该位清零并比较1/4参考电压以此类推逐次逼近。比较次数等于分辨率位数N位ADC需比较N次最终累加值即为转换结果。电路结构控制电路逐位产生数字码经D/A转换器生成模拟电压与输入电压 VINVIN 比较根据比较结果逐次确定每一位的取值最终逼近得到数字输出 D2 D0。4.3 寄存器工作原理4.3.1 输入通道ADC通道是模拟信号输入到ADC控制器的单个输入路径一个ADC控制器可具有多个通道。外部通道16个连接外部GPIO引脚内部通道仅ADC1有共3个通道16连接温度传感器通道17连接内部参考电压通道18连接VBAT电池/电源采集模拟电压输入范围为 VREF−≤VIN≤VREF。4.3.2 转换序列转换序列是指多个ADC通道以任意顺序进行转换时的长度需要转换的通道个数和顺序通道转换的先后次序配置。转换序列有两种规则序列和注入序列1 规则序列规则序列最多16个通道从规则序列1SQ1到规则序列16SQ16按SQ1→SQ16依次转换。配置方法通过ADC_SQR1.L位设置序列长度长度通过ADC_SQRx.SQRn位添加转换通道顺序严格按照从SQ1往后ADC_SQR3存放SQ1SQ6转换的最前面 6 个ADC_SQR2存放SQ7SQ12ADC_SQR1存放SQ13SQ16转换的最后 4 个2 注入序列注入序列长度最大为4JSQ1~JSQ4转换顺序与长度配置相关转换始终从 JSQ4编号最大开始向 JSQ1编号最小方向反向进行。终点始终是JSQ4起点随长度增加而前移。配置方法通过ADC_JSQR.IL位设置注入序列长度通过ADC_JSQR.ISQx位添加转换通道把要放入的通道放入ISQX里这样就能按照序列长度的顺序来一次读取通道ISQ4对应JSQ4ISQ3对应JSQ3以此类推注入序列主要用于两种场景通过ADC_CR1.JAUTO位选择模式自动注入JAUTO1规则序列转换完成后自动转换注入序列无需软件或外部触发但必须禁止注入通道外部触发。适用于规则序列长度不足触发注入JAUTO0通过外部事件或软件触发启动可打断正在进行的规则序列转换完成后自动恢复规则序列。适用于需要临时插入高优先级转换4.3.3 转换触发源ADC转换启动方式分为软件触发和事件触发两种规则序列和注入序列各有独立的触发配置。软件触发规则序列向ADC_CR2.SWSTART写1触发转换开始后硬件自动清零注入序列向ADC_CR2.JSWSTART写1触发转换开始后硬件自动清零前提ADC控制器需先使能向ADC_CR2.ADON写1上电事件触发通过外部事件定时器捕获、EXTI中断线等触发转换规则序列ADC_CR2.EXTEN选择触发极性ADC_CR2.EXTESEL选择事件源注入序列ADC_CR2.JEXTEN选择触发极性ADC_CR2.JEXTESEL选择事件源支持上升沿、下降沿或双边沿触发4.3.4 转换时间1 ADC时钟来源ADCCLK模拟电路时钟来自APB2经可编程预分频器分频2/4/6/8分频通过ADC_CCR.ADCPRE位配置最大频率36MHz决定采样和转换时间。数字接口时钟用于寄存器读写访问等于APB2时钟频率。2 采样时间配置每个通道可独立设置采样周期数ADC_SMPR2设置通道0~9ADC_SMPR1设置通道10~183 总转换时间计算公式分辨率转换时间12位Tconv 采样周期数 12个ADCCLK周期10位Tconv 采样周期数 10个ADCCLK周期8位Tconv 采样周期数 8个ADCCLK周期6位Tconv 采样周期数 6个ADCCLK周期4.3.5 扫描模式ADC扫描模式与非扫描模式总结非扫描模式ADC_CR1.SCAN0仅按序列中的第一个通道进行单通道转换即使序列长度大于1也无效。扫描模式ADC_CR1.SCAN1按序列中预设的顺序对多个通道轮流进行转换适用于多通道采集场景。注入序列的触发注入会自动转化到非扫描模式使用规则序列长度1时用非扫描模式序列长度1时必须使能扫描模式才能实现多通道转换。4.3.6 连续与单次单次转换模式ADC按序列长度完成一次序列转换后自动停止需要重新触发才能再次转换。连续转换模式ADC按序列长度完成一次序列转换后自动回到序列头开始新一轮转换循环进行。注意注入序列无法使用连续转换模式也不支持 CONT 位配置。即使使能 JAUTO 自动注入也只是让注入序列在每次规则转换完成后额外执行一次并非注入序列自身的连续循环。4.3.7 数据存储规则数据寄存器ADC_DR只有1个16位有效长度规则序列中所有通道共用一个数据寄存器后一次转换结果会覆盖前一次需及时读取。注入数据寄存器ADC_JDRx共4个ADC_JDR1~ADC_JDR416位有效长度与注入序列转换顺序一一对应ADC_JDR1存储第一个转换结果ADC_JDR2存储第二个以此类推不会被覆盖。数据对齐数据对齐指ADC转换结果在数据寄存器中的存储方式分为左对齐和右对齐两种通过ADC_CR2.ALIGN位控制0右对齐1左对齐一般右对齐。6位分辨率按字节8位对齐存储在寄存器低8位或高8位8位、10位、12位分辨率按半字16位对齐存储在寄存器低16位或高16位五、TIM控制器原理5.1 基本定时器STM32F4xx 系列的基本定时器有TIM6和TIM7两者相互独立不共享资源。基本定时器组成1 时钟源基本定时器TIM6/TIM7的时钟源CK_INT来源于APB1 总线时钟。2 预分频器PSC对定时器输入时钟CK_INT进行分频降低频率实现更灵活的时间控制。3 计数器项目说明时钟来源预分频器输出 CK_CNT计数模式仅支持递增计数基本定时器计数寄存器TIMx_CNT启动条件TIMx_CR1 寄存器中的 CEN 位置 1启动延迟CEN 置 1 后一个时钟周期后计数器才真正开始计数范围从 0 → 自动重载值TIMx_ARR实际计数要减一因为从0开始上溢事件计到 ARR 后下一时钟回到 0 并产生上溢事件TIMx_CNT存放计数器的值TIMx_ARR存放的是用户设计的目标值时序图CNT_EN是计数器使能信号CEN 置 1 后一个时钟周期有效高电平期间计数器正常工作。4 自动重载器项目说明作用控制计数器的最大计数值决定溢出时间寄存器TIMx_ARR预装载寄存器影子寄存器实际生效的寄存器预装载寄存器的值在更新事件时传入溢出条件TIMx_CNT TIMx_ARR溢出后CNT 自动清零产生更新事件UEV预装载生效方式由 TIMx_CR1 寄存器的ARPE位控制ARPE 0或后为1写入 ARR 后立即生效直接进影子寄存器ARPE 1或后为0写入 ARR 后等下一次更新事件UEV时才生效更新事件产生条件计数器上溢 且 TIMx_CR1 寄存器中的 UDIS 位 0软件更新也可通过软件产生更新事件5 UEV 事件产生项目说明UEV来源1计数器上溢CNT ARRUEV来源2软件手动触发TIMx_EGR 寄存器的 UG 位置 1允许产生条件TIMx_CR1 寄存器中的UDIS 0禁止产生条件TIMx_CR1 寄存器中的UDIS 1UDIS 0 时上述两种来源都能正常产生 UEVUDIS 1 时上述两种来源都无法产生 UEV5.2 通用定时器5.2.1 TIM2 到 TIM51 主要特性计数器位宽TIM3、TIM416 位TIM2、TIM532 位计数模式递增、递减、递增/递减中心对齐预分频器16 位可编程分频系数1 65536支持运行时修改独立通道最多 4 个每个通道可用于输入捕获输出比较PWM 生成边沿对齐 / 中心对齐单脉冲模式输出同步电路可用外部信号控制定时器支持多个定时器互连中断 / DMA 触发事件更新事件计数器上溢/下溢、软件/硬件初始化触发事件启动、停止、初始化、计数输入捕获事件输出比较事件2 通用定时器内部结构组成部分主要作用核心组成1. 时钟源提供定时器的工作时钟决定计数频率内部时钟、外部时钟模式1/2、内部触发输入2. 控制器控制定时器的启动、停止、复位及触发信号处理触发控制器、从模式控制器3. 时基单元设定定时的时间基准是定时的核心预分频器(PSC)、自动重载寄存器(ARR)、计数器(CNT)4. 输入控制处理外部输入信号为输入捕获做准备输入滤波器、边沿检测器、通道映射5. 输入捕获/输出比较测量外部波形或产生内部波形PWM/比较输出4个独立的捕获/比较通道含CCR寄存器6. 输出控制将输出信号按需求配置后输出到芯片引脚输出使能、极性选择、输出模式控制器时钟源说明内部时钟CK_INT来自 RCC 的定时器总线时钟APB1/APB2最常用外部时钟模式1从TI1 / TI2通道输入引脚输入外部时钟信号支持单沿计数(Tl1FP1/Tl2FP2)仅上升沿或仅下降沿支持双沿计数(Tl1F_ED)上升沿和下降沿均计数外部时钟模式2从ETR外部触发输入引脚输入外部时钟信号内部触发输入ITR来自其他定时器的输出用于定时器级联同步5.2.2 通用定时器内部结构对比组成部分TIM2TIM5TIM9 / TIM12TIM10/11/13/141. 时钟源内部时钟 外部时钟模式1/2 内部触发输入内部时钟 外部时钟模式1/2 内部触发输入仅内部时钟2. 控制器完整触发控制器 从模式控制器完整触发控制器 从模式控制器简化仅触发控制器3. 时基单元16位或32位计数器支持递增/递减/中央对齐16位计数器仅支持递增16位计数器仅支持递增4. 输入控制4通道含滤波器、边沿检测、预分频器2通道含滤波器、边沿检测、预分频器1通道含滤波器、边沿检测、预分频器5. 输入捕获/输出比较4个独立通道2个独立通道1个独立通道6. 输出控制支持边沿对齐和中心对齐仅支持边沿对齐仅支持边沿对齐5.3 三种计数方式对比项递增计数递减计数中央对齐计数计数方向从 0 递增到 ARR从 ARR 递减到 0先递增到 ARR再递减到 0更新事件产生时机计数器达到 ARR 时计数器达到 0 时递增到 ARR和递减到 0 时两次计数器周期ARR 1ARR 1ARR × 2PWM 对齐方式边沿对齐左对齐或右对齐边沿对齐中心对齐适用定时器所有通用定时器TIM2TIM5部分支持TIM9TIM14仅递增TIM2TIM5TIM9TIM14不支持典型应用场景基本 PWM、简单定时特殊波形、反向 PWM电机控制、需要对称波形的场景设备要求信号是中心对称的信号的时候用中心对齐模式中央对齐计数时序图六、PWM控制原理6.1 PWM输出比较(递增计数)1 工作原理设置关键寄存器ARR自动重载寄存器计数器累加的最大值比较值CCR与当前计数值进行比较的阈值CNT计数器寄存器计数器当前计数的值工作过程CNT 从 0 开始递增当 CNT 比较值时输出有效电平(一般为高电平当 CNT ≥ 比较值时输出无效值当 CNT 计数到 ARR 时清零并重新从 0 开始所以一个周期就为CNT的值从0开始加加到ARR这个过程中与比较值比较的结果结论ARR 决定 PWM 周期一个周期 CNT 从 0 加到 ARR 的时间比较值决定 PWM 占空比高电平时间 比较值 × 每个计数步长的时间