STM32F1与STM32CubeIDE快速入门外部中断配置与功能实现
STM32F1与STM32CubeIDE快速入门-外部中断配置与功能实现外部中断配置与功能实现本次实例将实现通过STM32Cube IDE配置外部中断以及相关功能实现。关于STM32的中断、NVIC与EXTI请参考:
STM32F1与STM32CubeIDE快速入门-中断、NVIC与EXTI概述
1、外部中断配置第一步、创建工程:
第二步、选择芯片:
第三步、配置系统时钟:
第四步:配置输出GPIO引脚:
将引脚PC6、PC7、PD6、PD13配置为GPIO_Output,并定义User_Label分别为:LED1、LED0、LED2、LED3
引脚的参数配置如下:
第五步、配置EXTI:
将引脚PE2、PE3、PE4、PE5配置为外部中断:GPIO_EXTI2、GPIO_EXIT3、GPIO_EXIT4、GPIO_EXIT9_5。其具体配置参数如下:
2、生成代码与功能实现在配置完成之后,将配置保存并生成代码。我们将得到关键的代码如下:
1)GPIO初始化
在文件main.c得到如下生成代码:
12345678910111213141516171819202 ...
STM32F1与STM32CubeIDE快速入门USARTUART串口通信
STM32F1与STM32CubeIDE快速入门-USART/UART串口通信USART/UART串口通信1、USART介绍通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。
USART提供了一种灵活的方式,可以与需要行业标准 NRZ 异步串行数据格式的外部设备进行全双工数据交换。 USART使用小数波特率发生器提供非常广泛的波特率范围。
支持同步单向通信和半双工单线通信。 它还支持 LIN(本地互连网络)、智能卡协议和 IrDA(红外数据协会)SIR ENDEC 规范以及调制解调器操作 (CTS/RTS)。 它允许多处理器通信。
在STM32中,还可以通过将DMA用于多缓冲区配置,从而实现高速数据通信。
STM32F103VET6微控制器有三个 USART 和两个 UART,其中 USART1 和时钟来源于 APB2 总线时钟,其最大频率为 72MHz,其他四个的时钟来源于 APB1 总线时钟,其最大 ...
STM32F1与STM32CubeIDE快速入门定时器Timer概述
STM32F1与STM32CubeIDE快速入门-定时器(Timer)概述定时器(Timer)概述在本文中,将介绍 STM32 微控制器中的 STM32 定时器模块。 STM32 微控制器中有不同的硬件定时器,每个定时器都可以在多种模式下运行并执行多种任务。 将了解这些不同的硬件变体及其应用用例。 本文将从计时器模式开始,其他模式将在稍后讨论。
1、定时器模块介绍最基本形式的定时器模块是一个数字逻辑电路,它对每个时钟周期进行计数。 更多功能在硬件中实现以支持定时器模块,因此它可以向上或向下计数。 它可以有一个预分频器,将输入时钟频率除以一个可选值。 它还可以具有用于输入捕获、PWM 信号生成等的电路。
比如,一个基本的 16 位定时器,如下所示。 作为一个 16 位时间,它可以从 0 计数到 65535。每个时钟周期,定时器的值递增 1。正如你所看到的,Fsys 不是递增定时器模块的频率。 但它被预分频器除以,然后它被馈送到计时器。
在定时器模式下,TCNT 寄存器在每个时钟周期以频率(Fsys/PSC)递增 1。 这意味着如果 Fsys 为 80MHz 且 PSC ...
STM32F1与STM32CubeIDE快速入门定时器定时模式
STM32F1与STM32CubeIDE快速入门-定时器定时模式定时器定时模式
1、定时器的定时模式介绍在定时器模式下,定时器模块从具有已知频率的内部时钟源获得时钟。 因此时钟频率是已知的,溢出时间也可以由预加载寄存器计算和控制以获得任意选择的时间间隔。 每次定时器溢出时,定时器都会向 CPU 发出一个中断信号,指示指定的时间间隔结束。
这种操作模式通常用于在每个特定时间间隔完成特定操作。 并实现系统中各种任务和事件之间的计时和同步。 它还可以替代各种情况下的延迟,以获得更好的系统响应。
定时器输出时间如下:
T O U T
T
i
c
k
C
o
u
n
t
s
×
T
i
c
k
T
i
m
e
T_{OUT} = TickCounts \times TickTime
TOUT=TickCounts×TickTime
T O U T
P
S
C
×
P
r
e
l
o
a
d
F
C
...
STM32F1与STM32CubeIDE快速入门定时器计数模式
STM32F1与STM32CubeIDE快速入门-定时器计数模式定时器计数模式1、定时器计数模式介绍在计数器模式下,定时器模块从外部源(定时器输入引脚)获得时钟。 因此定时器在外部输入的每个上升沿或下降沿向上或向下计数。 当需要在不轮询输入引脚或定期读取 GPIO 或连续中断 CPU(如果选择将其连接到 EXTI 引脚)的情况下实现数字计数器时,这种模式在许多情况下非常有用。
实际上可以监视每个时间间隔的计数器值差异,以了解确实发生了多少个脉冲或其频率。 这种模式在很多情况下都是有利的。
正如我们在之前的文章中所讨论的,定时器模块可以在计数器模式下运行。 定时器从外部源(输入引脚)获得时钟并计算脉冲数。 但是,STM32 定时器模块对于计数模式本身确实有多种模式。
1)递增计数(Up-Counting)模式
在向上计数模式下,计数器从 0 计数到自动重载值(TIMx_ARR 寄存器的内容),然后从 0 重新开始并产生计数器溢出事件。 可以在每次计数器溢出时或通过设置 TIMx_EGR 寄存器中的 UG 位(通过软件或使用从模式控制器)生成更新事件。
2)递减计数( Down-co ...
STM32F1与STM32CubeIDE快速入门定时器PWM模式
STM32F1与STM32CubeIDE快速入门-定时器PWM模式定时器PWM模式在本文中,将讨论在 PWM 模式下使用 STM32 定时器模块的 STM32 PWM 生成。将了解 PWM 信号是如何产生的,如何控制其频率、占空比,以及如何估计 PWM 分辨率。 以及如何设置定时器模块以在 PWM 模式下工作,并编写一个简单的应用程序来制作 LED 调光器。
1、定时器PWM模式介绍正如我们在之前的文章中所讨论的,定时器模块可以运行多种模式,其中一种模式是 PWM 模式。当定时器从内部源获得时钟并计数到自动重载寄存器值时,输出通道引脚被驱动为高电平。它一直保持到定时器计数达到 CCRx 寄存器值,匹配事件导致输出通道引脚被驱动为低电平。它一直保持到定时器计数到自动重载寄存器值,依此类推。
产生的波形称为 PWM(脉宽调制)信号。其频率由内部时钟、预分频器和 ARRx 寄存器决定。其占空比由通道 CCRx 寄存器值定义。 PWM 并不总是必须遵循与 PWM 生成完全相同的程序,但是,它是非常基本的程序,并且更容易理解这个概念。它被称为递增计数 PWM 模式。
下图显示了 ARR 值 ...
STM32F1与STM32CubeIDE快速入门定时器编码Encoder模式
STM32F1与STM32CubeIDE快速入门-定时器编码(Encoder)模式定时器编码(Encoder)模式1、定时器编码器模式在编码器接口模式下,定时器模块作为具有两个输入的数字计数器运行。计数器由两个输入引脚上的每个有效转换计时。评估两个输入的转换序列并生成计数脉冲以及方向信号。根据顺序,计数器向上或向下计数。所以你不必单独检测这些脉冲,看看哪个先检测旋转方向和这种工作。现在,由于编码器模式硬件支持,所有这些都由硬件完成。
在编码器接口模式下配置的定时器提供有关传感器当前位置的信息。用户可以通过使用在捕获模式下配置的第二个定时器测量两个编码器事件之间的周期来获取动态信息(速度、加速度、减速度)。指示机械零位的编码器输出可用于此目的。根据两个事件之间的时间,也可以定期读取计数器。
在文中,我们将讨论 STM32 定时器编码器模式。 我们还将在编码器模式下使用定时器模块进行 STM32 旋转编码器接口。 我们将使用它来控制另一个实验室中 LED 的亮度。
编码器是广泛用于众多应用中的电子设备。 编码器可用作电机速度和位置传感应用、距离和长度测量等的传感器。 与电位计不同, ...
STM32F1与STM32CubeIDE快速入门定时器输入捕获模式Input Capture Mode实现频率计数
STM32F1与STM32CubeIDE快速入门-定时器输入捕获模式(Input Capture Mode)实现频率计数定时器输入捕获模式(Input Capture Mode)1、定时器输入捕获模式介绍在本文中,将介绍输入捕捉模式下的定时器模块操作。 如何配置定时器以在输入捕捉模式下运行。 以及如何启用其中一个输入捕捉通道在上升沿捕捉外部信号(使用NE555作为输入信号源),构建一个简单的频率计数器应用程序。
正如我们在之前的文章中所介绍的,定时器模块可以运行多种模式,其中一种是输入捕捉模式。 每当输入捕捉通道引脚上发生特殊事件时,定时器从内部源获取时钟,并捕捉其当前值并将其保存到输入捕捉寄存器。 下面简要介绍 STM32 定时器模块中的捕获比较通道。 另请注意,每个定时器模块都有多个(输入捕获/比较输出)通道(3、4、6 或数据表中的任何内容)。
1.1 STM32 定时器—捕捉/比较通道每个捕捉/比较通道都围绕一个捕捉/比较寄存器(包括一个影子寄存器)、一个用于捕捉的输入级(带有数字滤波器、多路复用和预分频器)和一个输出级(带有比较器 ...
STM32F1与STM32CubeIDE快速入门DMA概述
STM32F1与STM32CubeIDE快速入门-DMA概述DMA概述1、什么是DMA直接内存访问 (Direct Memory Access ,DMA) 单元是计算机体系结构中的数字逻辑元件,可与同一芯片上的主微处理器结合使用,以卸载内存传输操作。 这显着降低了 CPU 负载。 由于 DMA 控制器可以执行内存到内存的数据传输以及外围设备到内存的数据传输,反之亦然。 DMA 与 CPU 的存在可以将其吞吐量提高几个数量级。
在无 DMA 计算机体系结构中,就会发现它看起来像下图所示的样子:
正如上图所示,CPU(主处理器)必须完成从闪存获取指令(代码)、执行解码指令以及将数据移入和移出外围设备和内存的所有工作。想象一下有一个 UART1 数据接收器,它获取数据流,CPU 必须立即将数据流传输到内存中的本地缓冲区,以免丢失任何数据包。这转化为每秒由 UART、SPI、ADC 等不同外设触发的疯狂数量的中断。 CPU 必须处理所有事情并浪费越来越多的时间。
将上下文切换到中断处理程序和从中断处理程序切换上下文会占用一些完全浪费的周期,并且随着中断信号的持续触发而定期发生,这一事实在 ...
STM32F1与STM32CubeIDE快速入门USART通过DMA进行数据接收与发送
STM32F1与STM32CubeIDE快速入门-USART通过DMA进行数据接收与发送USART通过DMA进行数据接收与发送通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。
USART提供了一种灵活的方式,可以与需要行业标准 NRZ 异步串行数据格式的外部设备进行全双工数据交换。 USART使用小数波特率发生器提供非常广泛的波特率范围。
支持同步单向通信和半双工单线通信。 它还支持 LIN(本地互连网络)、智能卡协议和 IrDA(红外数据协会)SIR ENDEC 规范以及调制解调器操作 (CTS/RTS)。 它允许多处理器通信。
在STM32中,还可以通过将DMA用于多缓冲区配置,从而实现高速数据通信。
直接内存访问 (Direct Memory Access ,DMA) 单元是计算机体系结构中的数字逻辑元件,可与同一芯片上的主微处理器结合使用,以卸载内存传输操作。 这显着降低了 CPU 负载。 由于 DMA 控制器可以 ...
