10、DMA直接存储器存取
10、DMA直接存储器读取1、DMA(Direct Memory Access)直接存储器存取
数据转运小助手,协助CPU完成数据转运工作,DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源
外设:一般指的是外设的数据计算器DR,data register,比如ADC的数据寄存器、串口的数据寄存器等等,
存储器:运行内存SRAM和程序存储器Flash,是存储变量数组和程序代码的地方
2、12个独立可配置的通道:
DMA1(7个通道), DMA2(5个通道)
从一个地方移动到另一个地方,需要占用一个通道,DMA多通道进行运转时候,之间可以各转各的互不干扰
3、每个通道都支持软件触发和特定的硬件触发
若是存储器到存储器的数据转运,比如把flash里的一批数据转运到SRAM中去,就需要软件触发,触发后,DMA就会一股脑的转运,以最快的速度全部转运好
若是外设到存储器的数据转运,不能一股脑的转运,因为外设的数据是有一定时机的,需要硬件触发。比如转运ADC的数据,就得ADC每个通道AD转换完成后,硬件触发一次DMA,之后DMA再转运,触发一次转 ...
9、ADC模数转换器
9. ADC模数转换器1、ADC模拟-数字转换器ADC (Analog-Digital Converter) 可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁
ADC位数和范围:STM32F103C8T6的ADC是12位的,这意味着它可以将输入电压范围(0到3.3V)分成4096个不同的数字值。最小的数字值是0,最大的数字值是4095。
转换时间:ADC的最大转换时间为1微秒(1us),这对于需要高速采样的应用非常有用。1us的转换时间对应1MHz的采样速率。
输入通道:该微控制器具有18个输入通道,其中16个用于外部信号源,2个用于内部信号源。这使得它可以同时测量多个不同的信号,适用于多通道数据采集应用。
规则组和注入组:规则组用于常规的ADC转换,而注入组用于特殊要求的转换。这提供了更大的灵活性,以满足各种测量需求。
模拟看门狗:ADC配备了模拟看门狗,可以自动监测输入电压范围,帮助您检测输入信号是否在预期的范围内。这有助于确保测量的准确性和安全性。
STM32F103C8T6 ADC资源:ADC1、ADC2,10个外部输入通道
...
8、TIM编码器接口
8、TIM编码器接口一、知识点1、Encoder Interface 编码器接口的工作流程编码器接口可接收增量(正交)编码器的信号,根据编码器旋转产生的正交信号脉冲,自动控制CNT自增或自减,从而指示编码器的位置、旋转方向和旋转速度
每个高级定时器和通用定时器都拥有1个编码器接口
两个输入引脚借用了输入捕获的通道1和通道2
2、编码器接口举例子讲解若初始化之后CNT初始值为0,右转产生10个脉冲后停下来,CNT就由0自增到10停下来再让编码器在左转产生5个脉冲,那CNT就在原来10的基础上自减5停下来编码器接口:相当于一个带有方向控制的外部时钟,它同时控制着CNT的计数时钟和计数方向,CNT的值就表示了编码器的位置若每隔一段时间取是CNT的值,再把CNT清零,每次取出来的值就表示了编码器的速度
3、编码器测速(带方向的测速)实质实质:测频法测正交脉冲的频率
CNT计次,然后每隔一段时间去一次计次,其实是测频法的思路
4、其他知识点每个高级定时器和通用定时器都拥有1个编码器接口两个输入引脚借用了输入捕获的通道1和通道2(通道3和通道4不能用)如果一个定时器配置成了编码机接口模式,则基本 ...
7、输入捕获
7、输入捕获模式测频率、PWMI模式测频率占空比一、知识点TIM输入捕获模式:1、输入捕获模式测频率占空比信号源:产生一个频率和占空比可调的波形
无信号发生器的情况:先用PWM模块,在PA0端口输出一个频率和占空比可调的波形,把PA0和PA6连在一起,PA6为输入波形,这样就是测量自己PWM模块产生波形的频率
在显示屏上显示PA6的频率
2、PWMI模式测频率占空比1、IC(Input Capture)输入捕获输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中(即把当前CNT的值读出来,写入到CCR中)
2、通用定时器结构
(1)输出比较的执行逻辑 根据CNT和CCR的关系,从通道引脚输出高低电平
(2)四个输入捕获和输出比较通道 共用4个CCR寄存器,其CH1到CH4也是共用的,故对于同一个定时器,输入捕获和输出比较,只能使用一个,不能同时使用
(3)输入捕获的执行流程和输出比较的区别
输出比较:引脚是输出端口,根据CNT和CCR的大小关系来执行输出动作
输入捕获:引脚是输入端口,接收到输 ...
6、PWM输出
6、PWM输出1.1、输出比较输出比较(Output Compare,简称OC)是微控制器中的一个重要功能,用于生成PWM信号、产生精确的时间延迟或者触发特定事件。以下是关于输出比较的一些基本概念:
Output Compare 寄存器(CCR):输出比较功能通过比较定时器的计数器的值(CNT)与一个特定的比较值(CCR寄存器的值)来控制输出电平的变化。当计数值与CCR寄存器的值相等或满足特定的条件时,可以触发输出操作。
PWM 生成:输出比较通常用于生成脉冲宽度调制(PWM)信号,用于控制电机速度、LED亮度等。通过设定CCR寄存器的值,可以确定PWM信号的占空比,即高电平的持续时间与一个周期的比例。
死区控制:某些高级定时器的输出比较通道支持死区控制功能,用于防止同时开启两个输出通道导致短路或电流过大的情况。死区是两个输出通道之间的时间间隔,可以设置为一个固定值。
互补输出:某些高级定时器的输出比较通道支持互补输出功能,即同时控制两个输出引脚的状态,一个输出高电平时,另一个输出低电平,反之亦然。
事件触发:输出比较通道可以用于触发特定事件,例如捕获输入信号的边沿、生成精确 ...
5、TIM定时器中断
5、TIM定时器中断1、 TIM简介定时器:可以对输入的时钟进行计数,并在计数值达到设定值时触发中断
STM32在72MHz计数时钟下可以实现最大59.65s的定时。
16位计数器:执行计数定时的一个寄存器,每来一个时钟,计数器加1
预分频器:可以对计数器的时钟进行分频,让这个计数更加灵活
自动重装寄存器:计数的目标值(计多少个时钟申请中断),这些寄存器构成了最核心的部分。
这三部分组成了定时器的时基单元(计数器、自动重装寄存器、预分频器)
不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能
内外时钟源选择:STM32定时器允许你选择内部时钟源或外部时钟源,以满足不同的时序要求。这使得定时器能够适应不同的时钟环境。
输入捕获:定时器可以捕获外部事件的时间戳,例如上升沿或下降沿触发。这对于测量脉冲宽度、频率或其他时间相关的应用非常有用。
输出比较:定时器可以与输出比较功能一起使用,以在特定时间点产生或清除输出信号。这用于生成PWM信号、产生精确的脉冲输出等。
编码器接口:某些定时器可以配置为编码器接口模式,用于读取旋转 ...