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.mzph.cn/news/701733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NXP实战笔记(九):S32K3xx基于RTD-SDK在S32DS上配置 CRCIRQPower

目录 1、CRC概述 1.1、CRC配置 1.2、代码示例 2、INTCTRL 3、Power 1、CRC概述 硬件CRC产生16或者32bit的,S32K3提供了可编程多项式与其他参数需求。 CRC图示如下 1.1、CRC配置 暂时DMA不怎么会用,所以没有启用DMA CRC的选择 这点需要十分注意&…

完美解决ubuntu+windows双系统下时间不正确问题

在同一台电脑上安装ubuntuwindows双系统时,会出现某个系统的时间不正确的问题,而由于windows同步时间实在是太慢了,如果不去解决,windows上的时间大概率一直都是不对的。 原因分析 windows采用LocalTime机制设置时间&#xff0c…

【力扣白嫖日记】178.分数排名

前言 练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。 今日题目: 178.分数排名 表:Scores 列名类型idintscoredecimal 在 SQL 中,id 是该表的主键。 …

stm32利用CubeMX实现外部中断触发数码管加减数

首先打开proteus绘制电路图,如下: 然后打开CubeMX,配置晶振和GPIO: 接下来就是生成keil工程文件,用keil打开。 新建一个desplay.h文件:下面是全部代码 #ifndef __DESPLAY_H #define __DESPLAY_H #endif#i…

索引大战:探秘InnoDB数据库中B树和Hash索引的优劣

欢迎来到我的博客,代码的世界里,每一行都是一个故事 索引大战:探秘InnoDB数据库中B树和Hash索引的优劣 前言B树索引的深度解析Hash索引的奥秘揭晓性能对比分析 前言 在当今软件开发的世界中,数据库扮演着至关重要的角色。而InnoD…

QYWX企业微信的公告信息限制保存pdf的破解

公司使用企业微信好几年,重大的消息使用公告信息这个模块。可重要的消息无法保存,只能在线收藏。这个玩意只考虑到了维护企业利益,无视员工利益。 后来发现可以利用windows的虚拟打印机,将公告打印成pdf。 用了一段时间&#xf…

[算法沉淀记录] 排序算法 —— 冒泡排序

排序算法 —— 冒泡排序 基本概念 冒泡排序是一种简单的排序算法。它重复地遍历要排序的列表,一次比较两个元素,并交换它们的位置,如果它们不是按照升序排列的。这步遍历是重复进行的,直到没有再需要交换,也就是说该…

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等

注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构 #知识点: 1、SQLMAP-常规猜解&字典配置 2、SQLMAP-权限操作&文件命令 3、SQLMAP-Tamper&使用&开发 4、SQLMAP-调试指纹&风险等级 #参考文章: https://w…

代码随想录刷题第41天

首先是01背包的基础理论,背包问题,即如何在有限数量的货物中选取使具有一定容量的背包中所装货物价值最大。使用动规五步曲进行分析,使用二维数组do[i][j]表示下标从0到i货物装在容量为j背包中的最大价值,dp[i][j]可由不放物品i&a…

wpf 数据绑定 数据转换

1.概要 数据绑定&#xff0c;有时候绑定的数据源和目标的数据类型不同&#xff0c;这时候就需要转换。 2.代码 2.1 xaml(eXtensible Application Markup Language) 可扩展应用程序标记语言 <Window x:Class"WpfApp6.MainWindow"xmlns"http://schemas.mi…

【设计模式】策略模式及函数式编程的替代

本文介绍策略模式以及使用函数式编程替代简单的策略模式。 策略模式 在策略模式&#xff08;Strategy Pattern&#xff09;中一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式定义了一系列算法或策略&#xff0c;并将每个算法封装在独立…

《论文阅读》利用提取的情感原因提高共情对话生成的内容相关性 CCL 2022

《论文阅读》利用提取的情感原因提高共情对话生成的内容相关性 前言简介模型架构情绪识别情绪原因提取实验结果示例总结前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《Using Extracted Emotion Caus…

Day04 嵌入式---基本定时器

定时器概述 1、软件定时原理 使⽤纯软件的⽅式实现定时功能。 存在的问题&#xff1a;定时不太精准。CPU死等。 1&#xff09;压栈出栈需要花费时间 2&#xff09;ARM流⽔线体系架构的原因 2、定时器定时原理 使用精准的时基&#xff0c;通过硬件方式&#xff0c;实现定…

3d Slicer软件一种新的体绘制方式

vtk Multi-Volumne试验性体绘制方式&#xff0c;细节更丰富&#xff0c;影像更清晰&#xff0c;值得学习使用

前端本地化部署

前言 现在成熟的前端团队里面都有自己的内部构建平台&#xff0c;我司云长便是我们 CI/CD 的提效利器。我先来简单介绍下我司的云长&#xff0c;此云长非彼云长&#xff0c;云长主要做的是&#xff1a;获取部署的项目&#xff0c;分支&#xff0c;环境基本信息后开始拉取代码&…

Java ExecutorService 线程池(IO密集型、CPU密集型建议)

注&#xff1a;这是我很久之前在博客里面看到的&#xff0c;忘记是哪一篇了&#xff0c;分享一下 测试响应耗时 private String test1() {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}return "test1";}private String test2() …

java基于redis实现分布式锁

文章目录 前言一、redis二、Redisson1.引入库2. 分布式锁3. 锁自动续期 总结 前言 上篇文章介绍了Java中锁的应用,在SpringBoot单体应用中完全够用,但是SpringCloud微服务集群中就力所不及了。 我的使用场景是某些微服务应用中使用spring注解的形式来完成定时任务的功能,服务集…

C++-带你走进多态(1)

1. 多态的概念 1.1 概念 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态。 举个栗子&#xff1a;比如买票这个行为&#xff0c;当普通人买票时&#xff0c;是全价买票&am…

Jenkins解决Host key verification failed (2)

Jenkins解决Host key verification failed 分析原因情况 一、用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时&#xff0c;OpenSSH会核对公钥。如果公钥不同&#xff0c;OpenSSH会发出警告&#xff0c;避免…

Spring中关于事务的一些方方面面

事务隔离级别&#xff1a; 先了解一些事务隔离级别有哪些&#xff1a; 未提交读(Read Uncommitted)&#xff1a; 允许脏读&#xff0c;也就是可能读取到其他会话中未提交事务修改的数据 提交读(Read Committed)&#xff1a; 只能读取到已经提交的数据。Oracle等多数数据库默…