当前位置: 首页 > news >正文

RM电控讲义【HAL库篇】(二)

8080并口模式是一种常见的计算机接口模式,主要用于LCD(液晶显示屏)模块。

在8080并口模式中,通信端口包括多种信号线,用于实现数据的读写和控制功能。主要的信号线包括:

CS(片选信号):用于选择LCD模块,低电平有效。当CS信号为低时,选中LCD模块进行数据传输。

WR(写信号):用于控制LCD模块的写操作。在写模式下,WR信号为低电平,表示向LCD模块写入数据。

RD(读信号):用于控制LCD模块的读操作。在读模式下,RD信号为低电平,表示从LCD模块读取数据。

DB[17:1](数据线):用于传输16位双向数据。在写模式下,数据从外部设备通过数据线写入LCD模块;在读模式下,数据从LCD模块通过数据线传输到外部设备。

OLED---SPI协议:

STM32的RTC(Real Time Clock)是一个实时时钟模块,它可以在系统掉电的情况下继续运行,并提供准确的日期和时间信息。RTC模块通常由一个独立的时钟源(如晶体振荡器或外部时钟源)驱动,以确保时间的准确性。RTC电源通常由纽扣电池提供。

STM32中的PVD(Programmable Voltage Detector,可编程电压检测器)是一种用于检测电源电压是否低于或高于某个设定值的硬件模块。当电源电压降到设定的阈值以下或升到设定的阈值以上时,PVD会触发一个中断,通知微控制器采取相应的措施。

在STM32中,PVD 2.9V检测通常指的是将PVD的阈值设定为2.9V。这意味着,当电源电压降到2.9V以下时,PVD会触发一个中断。这个中断可以被用来执行一些重要的任务,比如保存数据、关闭某些外设、降低微控制器的功耗等,以确保系统的稳定性和可靠性。

STM32的低功耗模式是一种特殊的模式,它允许微控制器进入极低功耗状态。其中,睡眠模式是低功耗模式的一种,其主要特点是CPU核心和主系统时钟会被关闭,但外设时钟仍然工作。在这种模式下,只有必要的时钟和电源供给被保留,以最小化功耗消耗。

STM32的低功耗模式主要包括睡眠模式、停机模式和待机模式,它们在功耗、唤醒时间和唤醒源等方面存在显著的差异。睡眠模式:在睡眠模式下,Cortex-M3内核停止工作,但CPU的供电(1.8V)并未断开。所有的GPIO引脚都保持它们在运行模式时的状态。此外,所有的外设,包括Cortex-M3核心的外设,如NVIC和系统时钟(SysTick)等仍在运行。睡眠模式可以通过外设中断唤醒,唤醒后代码从睡眠模式进入的下一条语句执行。由于外设仍在运行,睡眠模式的功耗相对较低,但高于停机模式。停机模式:在停机模式下,所有的时钟都停止,但CPU的电源(1.8V)并未断开。这意味着CPU的数据不会丢失,恢复后可以从原来的位置继续执行。停机模式可以通过外设中断唤醒,如GPIO引脚上的电平边沿触发外部中断,或者通过RTC模块的定时唤醒。由于所有时钟都已停止,停机模式的功耗非常低。待机模式:在待机模式下,时钟全断,CPU的电源(1.8V)也断开。这意味着唤醒后程序将重新开始运行,类似于软件复位。待机模式只能通过Wake-up脚和RTC唤醒。由于时钟和电源都完全断开,待机模式的功耗最低,但唤醒时间可能较长。

DMA的通道, DMA1_Channel1 ~ DMA1_Channel7, DMA2_Channel1 ~ DMA2_Channel5。某个外设对应哪个DMA, 哪个通道,必须设置正确的DMA及通道, 才能正常使用!

 dma_init(DMA1_Channel4);                /* 初始化串口1 TX DMA */

 HAL_UART_Transmit_DMA(&g_uart1_handle, g_sendbuf, SEND_BUF_SIZE);

12位精度, ADC采样时钟=12M, 转换时间为: 采样周期 + 12.5个ADC周期。设置最大采样周期: 239.5, 则转换时间 = 252 个ADC周期 = 21us

在STM32中,当进行ADC(模数转换器)采集时,IO引脚应该设置为模拟输入模式(GPIO_MODE_ANALOG)。这种模式允许引脚接收模拟信号,并将其转换为数字数据,以供ADC进行采集和处理。在其他模式下,如输入浮空、上拉输入、下拉输入、推挽输出或开漏输出等,引脚主要用于数字信号的传输或控制,并不适合直接用于ADC采集。因此,在进行ADC采集时,应将IO引脚设置为模拟输入模式,以确保准确的信号采集和转换。

STM32的ADC采样序列是指ADC在进行模拟信号到数字信号转换过程中,对于输入信号的采样顺序和优先级的设置。简单来说,它决定了ADC如何依次读取和转换各个模拟输入引脚的信号。

ADC采样的分辨率指的是ADC能够识别和转换的模拟信号的最小变化量。换句话说,它决定了ADC输出数字值的精度。ADC的分辨率通常以位数来表示,例如8位、10位、12位或16位等。这些位数表示ADC可以将模拟信号划分为多少个不同的等级或步长。例如,一个12位的ADC可以将模拟信号划分为2^12(即4096)个不同的等级,而一个16位的ADC则可以将模拟信号划分为2^16(即65536)个不同的等级。对于STM32来说,其ADC的分辨率通常是固定的,例如STM32F4系列通常具有12位分辨率。这意味着STM32F4系列的ADC可以将模拟信号划分为4096个不同的等级。

Stm32内部集成了温度和电压传感器,可以通过ADC读取。测量范围:-40~125,精度±1.5℃。虽然精度不高,但在某些应用场景下是够了的,相比于外部接入传感器,使用内部温度传感器既可以节省成本,又可以简化电路。

STM32的DAC:

【STM32】STM32 DAC_哔哩哔哩_bilibili

STM32F373的DAC功能_哔哩哔哩_bilibili

http://www.lryc.cn/news/305671.html

相关文章:

  • Mac安装Appium
  • 数据库管理-第153期 Oracle Vector DB AI-05(20240221)
  • 通过傅里叶变换进行音频变声变调
  • Opencv(C++)学习 ARM上引用opencv报相关头文件找不到
  • 中国服装行业ERP的现状与未来发展
  • Unix与Linux区别
  • 惠尔顿 网络安全审计系统 任意文件读取漏洞复现
  • Chrome插件(二)—Hello World!
  • DBAPI如何使用数组类型参数
  • 博途PLC PID仿真(单容水箱液位高度控制含变积分变增益测试)
  • 第1集《灵峰宗论导读》
  • nuxt CSS 存放到独立文件进行SEO优化
  • 台式电脑电源功率越大越费电吗?装机选购多少W电源
  • 《TCP/IP详解 卷一》第4章 地址解析协议ARP
  • 如何在pgAdmin中用替换的值更新jsonb列?
  • 冯诺依曼体系结构 计算机组成的金字塔
  • AWS安全组是什么?有什么用?
  • SSM项目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架实现登录和主页菜单显示
  • 【MySQL】如何理解MySQL的锁(图文并茂,一网打尽)
  • 【设计模式】01-装饰器模式Decorator
  • 【Python笔记-设计模式】原型模式
  • 启动node服务报错Error: listen EACCES: permission denied 0.0.0.0:5000
  • onlyoffice api开发
  • 设计模式-工厂方法模式(C++)
  • ThreeJS 几何体顶点position、法向量normal及uv坐标 | UV映射 - 法向量 - 包围盒
  • 基于SpringBoot的家教管理系统
  • 简单mock server模拟用户请求给小程序提供数据
  • 【MATLAB】 EWT信号分解+FFT傅里叶频谱变换组合算法
  • MATLAB中,如何捕获和处理异常?如何在MATLAB中自定义错误消息?在MATLAB中,error函数和warning函数有什么区别?
  • 【算法与数据结构】127、LeetCode单词接龙