STM32的几个深入功能

STM32的几个深入功能

目录

  • 1、时钟源
  • 2、锁相环
  • 3、备份SRAM
  • 4、low power mode
  • 5、DMA Flash RAM
  • 6、复位类型
  • 7、CMSIS
  • 8、STM32F4学习方法
  • 9、中断
  • 10、8080 并行接口
  • 11、FSMC
  • 12、ADC
  • 13、IIC
  • 14、SPI
  • 15、485
  • 16、CAN
  • 17、MPU6050六轴传感器
  • 18、NRF24L01 2.4G无线模块
  • 19、FLASH
  • 20、外部SRAM
  • 21、SD卡+FATFS
  • 22、IAP
  • 23、USB
  • 24、TCP
  • 25、UCOSII

1、时钟源

  1. HSI是高速内部时钟,RC振荡器,频率为8MHz。
  2. HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。
  3. LSI是低速内部时钟,RC振荡器,频率为40kHz。
  4. LSE是低速外部时钟,接频率为32.768kHz的石英晶体。
  5. PLL为锁相环倍频输出,其时钟输入源可选择为HSI、HSE。倍频可选择为2~16倍。

2、锁相环

https://blog.csdn.net/gsjthxy/article/details/105884917?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168473868116800217233994%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168473868116800217233994&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-4-105884917-null-null.142v87insert_down28v1,239v2insert_chatgpt&utm_term=PLL%E5%8E%9F%E7%90%86&spm=1018.2226.3001.4187
鉴频鉴相器将+IN端的FREF输入与和-IN端的反馈信号进行比较。它使用两个D型触发器和一个延迟元件.
-IN频率将随着VCO频率的提高而提高,两个PFD输入最终会收敛或锁定到相同频率

3、备份SRAM

STM32F4提供4KB的备份SRAM,在开发程序时可以用于存储掉电不丢失的数据(需要RTC纽扣电池支持),特别是一些实时修改的,掉电不能丢失的数据,比如我用于存储雨量累计流量等实时变化的数据,定时存储到flash,实时存储到备份区(不能频繁的写flash),当备份区数据丢失了再从flash加载,否则每次都从备份区加载。
原文链接:https://blog.csdn.net/c1063891514/article/details/109404100
很可能存在备份数据丢失问题

4、low power mode

● Sleep mode
PLL (168 MHz)
All peripherals disabled
Wakeup using EXTI Line

● Stop mode with RTC
RTC Clocked by LSI
HSI, HSE OFF and LSI if not used as RTC Clock source
Wakeup using RTC

● Standby mode
Backup SRAM and RTC OFF
LSI OFF
Wakeup using Wakeup Pin (PA.00)

● Standby mode with RTC clocked by LSI
RTC Clocked by LSI
Backup SRAM OFF
Wakeup using RTC clocked by LSI

● Standby mode with RTC clocked by LSI and BKPSRAM
RTC Clocked by LSI
Backup SRAM ON
Wakeup using RTC clocked by LSI

5、DMA Flash RAM

DMA transfer data from Flash memory to RAM

6、复位类型

1.NRST 引脚低电平(外部复位)
2.窗口看门狗计数结束( WWDG 复位)
3.独立看门狗计数结束( IWDG 复位)
4.软件复位( SW 复位)

7、CMSIS

CMSIS_百度百科 (baidu.com)

8、STM32F4学习方法

三本参考资料,即《STM32F4xx 中文参考手册》、《STM32F3 与 F4 系列 Cortex M4内核编程手册》和《Cortex M3 与 M4 权威指南》。

时钟树图

9、中断

10、8080 并行接口

8080 并行接口的发明者是 INTEL,该总线也被广泛应用于各类液晶显示器。
在 8080 方式下读数据操作的时候,我们有时候(例如读显存的时候)需要一个假读命
(Dummy Read),以使得微控制器的操作频率和显存的操作频率相匹配。在读取真正的数据之前,由一个的假读的过程。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始,才是我们真正要读的数据。

——STM32F4开发指南-库函数版本_V1.1,page239

11、FSMC

灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器SRAM连接,
STM32F4 的 FSMC 接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器。
地址线(如 A0~A18)、数据线(如 D0~D15)、写信号(WE)、 读信号(OE)、片选信号(CS)

12、ADC

ADC 可以独立使用,也可以使用双重/三重模式(提高采样率)。
模式:单次、连续、扫描、间断
规则通道组和注入通道组

13、IIC

CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

14、SPI

主机和从机都有一个串行移位寄存器,主机通过向它的 SPI 串行寄存器写入一个字节来发起一次传输。寄存器通过 MOSI 信号线将字节传送给从机,从机也将自己的移位寄存器中的内容通过 MISO 信号线返回给主机。这样,两个移位寄存器中的内容就被交换。
外设的写操作和读操作是同步完成的。如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。
W25Q128 的最小擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。这样我们需要给 W25Q128 开辟一个至少 4K 的缓存区
在 W25Q128 的任意地址开始写入任意长度(必须不超过 W25Q128 的容量)的数据。我们这里简单介绍一下思路:先获得首地址(WriteAddr)所在的扇区,并计算在扇区内的偏移,然后判断要写入的数据长度是否超过本扇区所剩下的长度,如果不超过,再先看看是否要擦除,如果不要,则直接写入数据即可,如果要则读出整个扇区,在偏移处开始写入指定
长度的数据,然后擦除这个扇区,再一次性写入。当所需要写入的数据长度超过一个扇区的长度的时候,我们先按照前面的步骤把扇区剩余部分写完,再在新扇区内执行同样的操作,如此循环,直到写入结束。这里我们还定义了一个 W25QXX_BUFFER 的全局变量,用于擦除时缓存扇区内的数据。

15、485

(390条消息) RS485收发的3种典型电路-重点-自动收发电路_485典型电路_猪哥-嵌入式的博客-CSDN博客

16、CAN

多主控制。在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元
同时开始发送消息时,根据标识符(Identifier 以下称为 ID)决定优先级。ID 并不是
表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始
发送消息时,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级
最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
具有错误检测、错误通知和错误恢复功能。所有单元都可以检测错误(错误检测功能),
检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单
元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新
发送此消息直到成功发送为止(错误恢复功能)。
故障封闭功能。CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)
还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上
发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

在 CAN 总线的起止端都有一个 120Ω的终端电阻,来做阻抗匹配,以减少回波反射

数据帧一般由 7 个段构成
(1) 帧起始。表示数据帧开始的段。
(2) 仲裁段。表示该帧优先级的段。
(3) 控制段。表示数据的字节数及保留位的段。
(4) 数据段。数据的内容,一帧可发送 0~8 个字节的数据。
(5) CRC 段。检查帧的传输错误的段。
(6) ACK 段。表示确认正常接收的段。
(7) 帧结束。表示数据帧结束的段。

显性电平,隐形电平

过滤器

17、MPU6050六轴传感器

IIC

配置满量程范围、采样频率

18、NRF24L01 2.4G无线模块

SPI
//在指定位置读出指定长度的数据
status=SPI1_ReadWriteByte(reg);//发送寄存器值(位置),并读取状态值
for(u8_ctr=0;u8_ctr<len;u8_ctr++)pBuf[u8_ctr]=SPI1_ReadWriteByte(0XFF);

节点地址、通道
清除TX FIFO、RX FIFO寄存器

19、FLASH

FLASH空间分配
I2C-EEPROM 的FLASH AT24C02
SPI 的 2M FLASH W25X16

20、外部SRAM

IS62WV51216

21、SD卡+FATFS

SDIO

22、IAP

Bootloader编程
1.指令:IAP升级
FLASH_If_Write(APPLICATION_ADDRESS + userapplen, (uint32_t*)uart_buf, temp / 4)
2.指令:关闭全部中断,反初始化外设,跳转到APP
JumpAddress = (__IO uint32_t) (APPLICATION_ADDRESS + 4);
JumpToApplication = (pFunction) JumpAddress;
__set_MSP((__IO uint32_t) APPLICATION_ADDRESS);
JumpToApplication();
原文链接:https://blog.csdn.net/sudaroot/article/details/106932736

23、USB

24、TCP

25、UCOSII

只需要修改:os_cpu.h、os_cpu_a.asm 和 os_cpu.c等三个文件即可,其中:
os_cpu.h,进行数据类型的定义,以及处理器相关代码和几个函数原型;
os_cpu_a.asm,是移植过程中需要汇编完成的一些函数,主要就是任务切换函数;
os_cpu.c,定义一些用户 HOOK 函数。

os_cfg.h 里面定义 OS_TICKS_PER_SEC 的值为 200,也就是设置 UCOSII
的时钟节拍为 5ms,同时设置 OS_MAX_TASKS 为 10,也就是最多 10 个任务(包括空闲任务和统计任务在内)

信号量是一类事件。使用信号量的最初目的,是为了给共享资源设立一个标志,该标志表
示该共享资源的占用情况。这样,当一个任务在访问共享资源之前,就可以先对这个标志进行查询,从而在了解资源被占用的情况之后,再来决定自己的行为。

消息队列由三个部分组成:事件控制块、消息队列和消息。当把事件控制块成员 OSEventType 的值置为 OS_EVENT_TYPE_Q 时,该事件控制块描述的就是一个消息队列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/209021.shtml

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

相关文章

【Git系列】branch和tag

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

将单体应用程序迁移到微服务

多年来&#xff0c;我处理过多个单体应用&#xff0c;并将其中一些迁移到了微服务架构。我打算写下我所学到的东西以及我从经验中用到的策略&#xff0c;以实现成功的迁移。在这篇文章中&#xff0c;我将以AWS为例&#xff0c;但基本原则保持不变&#xff0c;可用于任何类型的基…

云原生系列1

1、虚拟机集群环境准备 VirtualBox类似vmware的虚拟化软件&#xff0c;去官网https://www.virtualbox.org/下载最新版本免费的&#xff0c;VirtualBox中鼠标右ctrl加home跳出鼠标到wins中。 VirtualBox安装步骤 https://blog.csdn.net/rfc2544/article/details/131338906 cent…

微信小程序:button微信开放能力打开客服会话分享到聊天框

文档 https://developers.weixin.qq.com/miniprogram/dev/component/button.html 打开客服会话 按钮关键属性 open-type"contact"功能按钮 <button class"mo-open-type"open-type"contact"> </button>分享 <button class&q…

Hive HWI 配置

前言 1、下载安装好hive后&#xff0c;发现hive有hwi界面功能&#xff0c;研究下是否可以运行&#xff0c;于是使用hive –service hwi命令启动hwi界面报错。 启动hwi功能 2、访问192.168.126.110:9999/hwi&#xff0c;发现访问错误 一、HWI介绍 HWI&#xff08;Hive Web Int…

【前端】CSS基础(学习笔记)

一、简介 1、HTML局限性 HTML只关注内容的语义&#xff0c;但是丑&#xff01; 2、CSS概要 CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称&#xff0c;有时我们也会称之为 CSS 样式表或级联样式表。 CSS 是也是一种标记语言 CSS 主要用于设置 HTML 页面中的文本内…

blender 粒子系统 roughness 属性

粒子系统中的Roughness是一种用来控制粒子的随机性和不规则性的属性&#xff0c;它可以影响粒子的发射方向、速度、大小、旋转等。Roughness有以下几个子属性&#xff1a; - **Uniform**&#xff1a;这个属性用来控制粒子的发射方向的随机性&#xff0c;即粒子在法线方向上的偏…

托盘四向穿梭车自动化密集库供应|单机智能向系统智能跨越的HEGERLS托盘四向车系统

随着物流产业的迅猛发展&#xff0c;托盘四向穿梭式自动化密集仓储系统可认为是在穿梭车货架系统基础上提出的一种新仓储概念。托盘四向穿梭式立体库因其在流通仓储体系中所具有的高效密集存储功能优势、运作成本优势与系统化智能化管理优势&#xff0c;已发展为仓储物流的主流…

喜讯:加速度商城系统全系列产品品牌全新升级为Shopfa

2月1日讯&#xff1a;经过1年多的品牌文化塑造&#xff0c;深圳市加速度软件开发有限公司经过研究决定&#xff0c;将旗下的多商户商城系列、小程序商城系列、B2B商城系列、供应商集采系列、电子元器件商城系列、跨境独立站商城系列、MRO工业品商城系列、外卖商城系列、智慧零售…

重写 AppiumService 类,添加默认启动参数,并实时显示启动日志

一、前置说明 在Appium的1.6.0版本中引入了AppiumService类&#xff0c;可以很方便的通过该类来管理Appium服务器的启动和停止。经过测试&#xff0c;使用该类的实例执行关闭server时&#xff0c;并没有释放端口号&#xff0c;会导致第二次启动时失败。另外&#xff0c;使用该…

6.2 U-boot 顶层 Makefile

一、U-boot工程目录分析 如果要分析uboot源码&#xff0c;首先要将uboot源码进行编译&#xff0c;编译需要在Ubuntu进行&#xff0c;把uboot文件放在一个目录下。 编译完成后的文件是这样&#xff1a; 我们需要看的文件夹如下。 1. arch 文件夹 从上图可以看出有很多架构&…

geolife笔记:整理处理单条轨迹

以 数据集笔记 geolife &#xff08;操作篇&#xff09;_geolife数据集-CSDN博客 轨迹为例 1 读取数据 import pandas as pd data pd.read_csv(Geolife Trajectories 1.3/Data//000/Trajectory/20081023025304.plt,headerNone, skiprows6,names[Latitude, Longitude, Not_Im…

【GEE笔记】在线分类流程,标注样本点、分类和精度评价

GEE在线分类流程 介绍 GEE&#xff08;Google Earth Engine&#xff09;是一个强大的地理信息处理平台&#xff0c;可以实现在线的遥感影像分析和处理。本文将介绍如何使用GEE进行在线的分类流程&#xff0c;包括标注样本点、分类和精度评价。本文以2020年5月至8月的哨兵2影像…

什么是散列函数

散列函数是一种公开的数学函数。散列函数运算的输入信息也可叫作报文。散列函数运算后所得到的结果叫作散列码或者叫作消息摘要。散列函数具有如下一些特点&#xff1a; &#xff08;1&#xff09;不同内容的报文具有不同的散列码&#xff0c;而一旦原始报文有任何改变&#xf…

__attribute__ 详解

GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。 特征: __attribute__书写特征是: __attribute__前后都有两个下划线,并切后面会紧…

文件管理和操作工具Path Finder mac功能介绍

Path Finder mac是一款Mac平台上的文件管理和操作工具&#xff0c;提供了比Finder更丰富的功能和更直观的用户界面。它可以帮助用户更高效地浏览、复制、移动、删除和管理文件&#xff0c;以及进行各种高级操作。 Path Finder mac软件功能 - 文件浏览&#xff1a;可以快速浏览文…

【数据结构 — 排序 — 插入排序】

数据结构 — 排序 — 插入排序 一.排序1.1.排序的概念及其运用1.1.1排序的概念1.1.2排序运用1.1.3 常见的排序算法 二.插入排序2.1.直接插入排序2.1.1.算法讲解2.1.2.代码实现2.1.2.1.函数定义2.1.2.2.算法接口实现2.1.2.3.测试代码实现2.1.2.4.测试展示 2.2.希尔排序2.2.1.算法…

ASO优化:帮助实现企业和用户的共赢

大数据时代APP拉获新客&#xff0c;ASO优化应该这么玩&#xff01; 市场那么大&#xff0c;用户那么广。企业设计的APP如何在茫茫人群中精准地把自己送到用户面前&#xff0c;并与ta产生沟通呢。随着时代的发展&#xff0c;数据成为企业竞争的核心。APP的营销发展离不开数据推…

gcc tips - GCC使用技巧与高级特性

目录 1. 获取 GCC 编译器预定义的宏 2. 列出依赖的头文件 3. 保存预处理结果到文件&#xff08;展开define, 展开include header&#xff09; 4. 写回调跟踪记录函数运行 -finstrument-functions 5. -fdump-rtl-expand 画函数调用关系图 GCC&#xff0c;全称GNU Compiler …

第一课【习题】三方库

三方组件是开发者在系统能力的基础上进行了一层具体功能的封装&#xff0c;对其能力进行拓展的工具 。 可以通过ohpm uninstall 指令下载指定的三方库 lottie使用loadAnimation方法加载动画。 通过ohpm安装lottie后&#xff0c;在哪个文件中会生成相关的配置信息&#xf…