STM32F1与STM32CubeIDE快速入门ADC概述
STM32F1与STM32CubeIDE快速入门-ADC概述ADC概述在文中,我们将讨论 STM32 ADC(模数转换器)模块。 首先介绍作为数字电路的 ADC,然后将注意力转移到 STM32 ADC 硬件及其特性。 我们将深入介绍 STM32 微控制器中 ADC 的功能描述、它的工作原理以及如何对其进行配置并充分利用它。
1、什么是模数转换器 (ADC)ADC(模拟到数字)转换器是一种电子电路,它将模拟电压作为输入并将其转换为数字数据,该数据以二进制代码表示电压电平。 每当您触发模拟输入以开始转换时,ADC 都会对模拟输入进行采样。 它执行一个称为量化的过程,以确定电压电平及其被推入输出寄存器的二进制代码。
ADC 执行与 DAC 相同的计数器操作,而 ADC (A/D) 将模拟电压转换为数字数据,而 DAC (D/A) 将数字数字转换为输出引脚上的模拟电压。
ADC 是最昂贵的电子元件之一,尤其是当它具有高采样率和高分辨率时。 因此,它是微控制器中的宝贵资源,不同的制造商为我们(固件工程师)提供了各种功能,以便充分利用它。 并且还可以灵活地做出很多决定, ...
STM32F1与STM32CubeIDE快速入门ADC轮询方式实现PWM调光器
STM32F1与STM32CubeIDE快速入门-ADC轮询方式实现PWM调光器ADC轮询方式实现PWM调光器在模拟输入通道上使用 ADC 执行模数转换的最简单的代码方法。 然而,这并不是所有情况下的有效方式,因为它被认为是使用 ADC 的一种阻塞方式。 通过这种方式,我们开始 A/D 转换并等待 ADC 完成转换,以便 CPU 可以继续处理主代码。
本次实例将实现通过ADC轮询方式采样,并转换成PWM方式输出,从而达到LED调光效果。
1、ADC模式方式配置创建工程及系统时钟配置请参考前面文章,在这里不再做介绍。
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
1)、ADC配置
2)、配置定时器
3)硬件接线:将一个10K旋转电位计连接到开发板,电位计的输出端连接ADC1通道。
2、代码生成与功能实现STM32Cube IDE生成的主要代码如下:
1)ADC初始化
在main.c文件中
123456789101112131415161718192021222324252 ...
STM32F1与STM32CubeIDE快速入门ADC中断方式实现PWM调光器
STM32F1与STM32CubeIDE快速入门-ADC中断方式实现PWM调光器中断方法是一种以非阻塞方式进行 ADC 转换的有效方法,因此 CPU 可以继续执行主代码例程,直到 ADC 完成转换并触发中断信号,以便 CPU 可以切换到 ISR 上下文并保存 用于进一步处理的转换结果。
然而,当以循环模式处理多个通道时,将收到来自 ADC 的周期性中断,这些中断对于 CPU 来说是无法处理的。 这会给系统带来抖动注入和中断延迟以及各种时序问题。 这可以通过使用 DMA 来避免。
本次实例将实现通过ADC中断式采样,并转换成PWM方式输出,从而达到LED调光效果。
1、ADC中断配置创建工程及系统时钟配置请参考前面文章,在这里不再做介绍。
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED 1)ADC基本参数设置
2)ADC中断配置
3)定时器TIM2配置
保存配置,并生成代码。
2、代码生成与功能实现STM32Cube IDE生成的主要代码如下:
1)ADC初始化
在main.c文件 ...
STM32F1与STM32CubeIDE快速入门ADC通过DMA方式与PWM实现调光器
STM32F1与STM32CubeIDE快速入门-ADC通过DMA方式与PWM实现调光器DMA 方法是以非常高的速率转换多个 ADC 通道的最有效方法,并且仍然将结果传输到内存而无需 CPU 干预,这是一种非常酷且省时的技术。 本次实例将实现ADC以DMA方式采样,并转换成PWM输出,从而达到调光效果。
1、ADC的DMA方式配置创建工程及系统时钟配置请参考前面文章,在这里不再做介绍。
STM32F1与STM32CubeIDE快速入门-开发环境搭建
STM32F1与STM32CubeIDE快速入门-GPIO概述与点亮LED
1)ADC基本参数配置 2)ADC的DMA配置 3)定时器TIM2配置 保存配置并生成代码。
2、代码生成与功能实现STM32Cube IDE生成的主要代码如下:
1)ADC初始化
在main.c文件中
123456789101112131415161718192021222324252627282930313233343536373839404142/\*\* \* @brief ADC1 Initialization Function \* @p ...
STM32F1与STM32CubeIDE快速入门DAC概述
STM32F1与STM32CubeIDE快速入门-DAC概述DAC概述1、什么是DACDAC(数模)转换器是一种电子电路,它以数字或数值作为输入,并将其转换为模拟电压,该电压电平对应于 DAC 输出寄存器中的二进制数。 每当您更改 DAC 输出寄存器值时,DAC 输出电压就会发生变化,并且可以通过多种方式触发此采样过程,我们将在下文中看到。
DAC 执行与 ADC 相反的操作,而 ADC (A/D) 将模拟电压转换为数字数据,而 DAC (D/A) 将数字数字转换为输出引脚上的模拟电压。
并非所有微控制器都带有片上 DAC 外设,这就是为什么需要通常使用外部 DAC IC 或执行一些技术,如 PWM 到 DAC 转换,这在后面的文章中看到。
2、STM32中的DACDAC模块是一个12位电压输出数模转换器。 DAC可配置为8位或12位模式,并可与DMA控制器结合使用。在12位模式下,数据可以左对齐或右对齐。 DAC有两个输出通道,每个通道都有自己的转换器。在双 DAC 通道模式下,当两个通道组合在一起进行同步更新操作时,转换可以独立完成或同时完成。输入参考引脚 ...
STM32F1与STM32CubeIDE快速入门SPI概述
STM32F1与STM32CubeIDE快速入门-SPI概述SPI概述在文中,将讨论 STM32 微控制器中的 SPI 硬件。 首先介绍串行外设接口 (SPI) 通信。 将进一步了解 STM32 SPI 硬件模块及其内部功能、操作模式、选项和配置,由 SPI 硬件触发的可能的中断信号,以及执行 SPI 发送和接收操作的不同模式,如(轮询 - 中断 - DMA)。最后,将通过STM32Cube IDE对SPI进行配置以及如何使用提供的 HAL API 配置和操作外设。 这就是本文的基本内容,为后面外设通过 SPI 与STM32微处理器进行通信打下基础。
1、什么是SPI通信SPI 是(Serial Peripheral Interface,串行外设接口)的首字母缩写,发音为“S-P-I”或“Spy”。 它是一种接口总线,通常用于微型计算机系统与其他设备、存储器和传感器之间的串行通信。 通常用于连接闪存、ADC、DAC、RTC、LCD、SD 卡等。 SPI 最初是由摩托罗拉于 80 年代开发的,旨在提供用于嵌入式系统应用的全双工串行通信。
1)SPI 引脚约定和连接
在典型的 SPI ...
STM32F1与STM32CubeIDE快速入门M25P16串行闪存驱动
STM32F1与STM32CubeIDE快速入门-M25P16串行闪存驱动M25P16串行闪存驱动M25P16 是一款 16 Mbit (2 Mbit × 8) 串行闪存,具有先进的写保护机制,可通过高速 SPI 兼容总线访问。 使用页编程指令可以一次对存储器进行 1 到 256 个字节的编程。
内存由 32 个扇区组成,每个扇区包含 256 页。 每页宽 256 字节。 因此,整个内存可以被视为由 8192 个页面或 2097152 个字节组成。
M25P16的特性如下:
16 Mb 闪存。
页程序(最多 256 个字节)在 0.64 毫秒(典型值)内。
扇区擦除 (512 Kbit) 在 0.6 秒内(典型值)。
批量擦除 (16 Mbit) 在 13 秒内(典型值)。
2.7 V 至 3.6 V 单电源电压。
SPI 总线兼容的串行接口。
75 MHz 时钟频率(最大值)。
深度掉电模式 1 μA(典型值)。
电子签名
JEDEC 标准两字节签名(2015h)。
具有 16 字节只读的唯一 ID 代码 (UID),可根据客户要求提供。
RES 指令,单字节,签名 (14h) ...
STM32F1与STM32CubeIDE快速入门I2C概述
STM32F1与STM32CubeIDE快速入门-I2C概述I2C概述1、什么是I2CI2C (i-square-c) 是“Inter-Integrated-Circuit”的首字母缩写词,最初由飞利浦半导体(现为 NXP)于 1982 年创建。I2CTM 是其各自所有者的注册商标,也许这就是他们的原因 在某些微控制器(如 Atmel AVR)中将其称为“双线接口 (TWI)”。 I2C 是一种多主、多从、同步、双向、半双工串行通信总线。 它广泛用于在短距离板内通信中将低速外围 IC 连接到处理器和微控制器。
1.1 I2C 模式和总线速度最初,I2C 总线仅限于 100 kbit/s 的操作。 随着时间的推移,规范中增加了一些内容,因此现在有五个运行速度类别。 标准模式、快速模式 (Fm)、快速模式 Plus (Fm+) 和高速模式 (Hs 模式) 设备向下兼容。 这意味着任何设备都可以以较低的总线速度运行。 由于总线是单向的,因此超快速模式设备与以前的版本不兼容。
1)双向总线:
标准模式 (Sm),比特率高达 100 kbit/s
快速模式 (Fm),比 ...
STM32F1与STM32CubeIDE快速入门I2C驱动LCD1602显示屏基于PCF8574
STM32F1与STM32CubeIDE快速入门-I2C驱动LCD1602显示屏(基于PCF8574)I2C驱动LCD1602显示屏(基于PCF8574)LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。
PCF8574/74A 通过两线双向 I2C 总线(串行时钟 (SCL)、串行数据 (SDA))提供通用远程 I/O 扩展。
PCF8574/74A包括八个准双向端口、100 kHz I2C 总线接口、三个硬件地址输入和中断输出在 2.5 V 和 6 V 之间运行。准双向端口可以独立指定为输入以监控中断状态或键盘,或作为输出以激活 LED 等指示设备。 系统主机可以通过单个寄存器从输入端口读取或写入输出端口。
关于PCF8574 I2C驱动LCD1602相关文章,请参考:
Arduino与Proteus仿真实例-LCD2004-I2C(PCF8574)驱动仿真
Ardunio开发实例-驱动 ...
STM32F1与STM32CubeIDE快速入门独立看门狗IWDG
STM32F1与STM32CubeIDE快速入门-独立看门狗(IWDG)独立看门狗(IWDG)1、独立看门狗介绍独立看门狗用于检测和解决由于软件故障引起的故障。当它在预期的时间窗口内没有刷新时,它会触发一个重置序列。由于它的时钟是一个独立的 32-kHz 低速内部 RC 振荡器 (LSI),因此即使主时钟出现故障,它也会保持活动状态。一旦启用,它会强制激活低速内部振荡器,并且只能通过复位禁用。应用程序的主要好处之一是它能够独立于主时钟运行。
独立看门狗的主要特性如下:
可编程超时范围从 125 us 到 32.8 秒
可编程时间窗宽度
由独立的 RC 振荡器 (LSI) 提供时钟
产生复位时:
达到超时值
刷新发生在窗外
可以冻结在调试、停止或待机模式
可配置为自动启用
独立看门狗的功能框图如下:
独立的看门狗寄存器位于 CORE 电压域,而其功能位于 VDD 电压域。当递减计数器达到零时,看门狗复位被激活。当应用软件没有按时刷新窗口看门狗时,就会发生这种情况。如果软件在递减计数器大于 Window 寄存器中存储的值时刷新看门狗,也会产生复位。 为防止看门狗复 ...
