#技术资源#
最新实战经验与STM32 本地化文档——LAT
给大家整理了汇总了以下资料供蝶粉学习查看~~~
1、LAT1270 STM32 TrustZone开发调试技巧(1)——地址安全区及资源安全属性配置
本文将对 SAU/IDAU 配置,Memory 的自身安全属性配置,以及内核访问指令与数据时的安全访问规则加以阐述,**可以帮助相关开发者更好地理解 V8M TrustZone 的架构以及在 STM32 中的实现,同时,还会列举一些与 memory 的 TrustZone 安全配置相关的常见问题及分析方法,给开发者做参考。
2、[url=https://www.stmcu.com.cn/Designresource/detail/lat-encryption-information-security/711797ZIP:https://www.stmcu.com.cn/Designr ... ion-security/711798]LAT1273 移植SBSFU到STM32G070[/url]
客户使用 STM32G070RBT6 给海外用户开发产品,由于当地新需求,产品需要增加安全启动的功能。 但是由于 X-Cube-SBSFU 包提供的示例中,只有基于STM32G071 的示例。客户因此询问该怎么移植。本文将讲解这个移植过程。
3、LAT1278 STM32G071从standby模式退出后SRAM数据保留
客户使用 STM32G071 芯片从 standby 模式下唤醒,想要 SRAM 的数据在退出 standby模式后得以保持。根据手册的描述,配置了相应的比特位,但是发现数据仍然保持不了。
4、LAT1282 一个串口通信异常的案例
客户的产品使用的是 STM32L471VET6, 通过串口外部连接一个 zigbee 模块, 波特率 115200bps.。出现问题时的具体情况是, 从 MCU 发出的串口波形检测到一个位的宽度明显不正确, 导致外部的 zigbee 模式识别不到。
5、LAT1285 STM32 TrustZone开发调试技巧(3)——HardFault调试与处理
在 STM32 TrustZone 开发调试技巧的前两篇中,我们介绍了内核的SAU/IDAU,地址的安全属性配置,资源的安全属性配置,内核访问资源的安全规则,以及TrustZone 环境下外设使用的常见问题等内容。
6、LAT1288 STM32 G474中Triggered-half模式的实现
STM32 G474 中包含了针对数字电源应用的高精度定时器(HRTIMER)外设,作为 HRTIMER V2 版本,其新增了 Triggered-half 功能,目的就是为了简化采样变频控制方式下两相交错并联工作电源的设计。
7、LAT1289 Keil、IAR、CubeIDE中变量不被初始化方法
有些时候在我们的应用过程中要求变量有连续性,或者现场保留,例如Bootloader 跳转,某种原因的复位过程中我们有些关键变量不能被初始化,在不同的编译环境下有不同的设置,本文就这个操作做总结,分别介绍使用 Keil,IAR 和 CubeIDE 的操作方法,本文中所用芯片为STM32G431RBT6。
8、LAT1309 一步一步创建STM32WBA BLE_Custom工程
本文档将指导用户如何使用 STM32CubeMX 软件一步步生成基于 STM32WBA52 MCU 的一个源码工程;该工程实现了 BLE 外设功能、并具有定制化的 BLE 服务。
9、LAT1281 数据意外变化导致条件判断流程异常v1.0
用户使用的 MCU 型号是 STM32H750VB。 在客户的代码中有多个条件语句,在条件里面的变量数值没有变化的情况下执行了条件里面的逻辑。
10、LAT1227 TouchGFX 从旧版本升级到新版本的方法
本文档提供了如何从较旧版本的 TouchGFX 升级到较新版本的教程,总结可能发生的常见问题及其各自的解决方案。
11、LAT1229 关于蓝牙BLE资格认证介绍
我们知道,如果一个公司提供涉及蓝牙技术或使用任何蓝牙商标(包括“蓝牙”字词)的产品,则它首先必须成为 Bluetooth SIG 的成员并将产品完成蓝牙资格认证流程,这样产品才可以在市场上销售。蓝牙资格认证可保证蓝牙设备连接互通操作的兼容性。
12、LAT1233 TrustZone架构下程序跳转导致的HardFault
客户使用 STM32U5 进行开发,并使能了 TrustZone 架构,程序需要从 bootloader 跳转到app。在之前版本都是正常跳转的,某一天 IAR 从 9.20 升级到 9.30 后,程序跳转失败,并且会导致 hardfault,想知道为什么会失败。
13、LAT1235 BlueNRG-X原理图参数说明
为了让客户在原理图设计阶段少走弯路,我这里结合客户评估和设计阶段常遇到的问题,整理了一下 BlueNRG-1/-2 相关设计及注意事项以备客户解惑用。
14、LAT1236 看似无法唤醒的一种异常现象分析
STM32 G0 系列产品具有丰富的外设和强大的处理性能以及良好的低功耗特性,被广泛用于各类工业产品中,包括一些需要低功耗需求的应用。
15、LAT1238 STM32WB如何一次性烧写FUS+STACK+APP
在使用 STM32WB 系列 MCU 时,通过 STM32CubeProgramer GUI 方式更新 FUS,Stack,User APP,需要操作多次,并且要输入不同的地址,比较烦琐,不适合在量产中操作使用。
16、LAT1239 简谈BlueNRG-LP和-LPS的代码空间优化
客户在使用 BlueNRG-LP/LPS 芯片时,增加 OTA 服务后常常反馈说,编译代码区域超空间了,需要帮忙优化一下。后文主要通过下列步骤进行分析和优化 BlueNRG-LP/LPS 的代码空间。
17、LAT1240 MPU子区话题
本篇内容主要涉及内核 MPU 配置方面的东西,重点针对客户的疑问做了些解答,对 MPU 配置中的子区概念做了较为详细的解读,以供参考。
18、LAT1241 浅谈STM32库里的回调函数
有人对 STM32 固件库里的回调函数有些好奇甚至纠结,这里简单介绍下。其实从用法及功能上讲他们并没有什么特别的,跟其它函数一样,也是实现特定功能的代码段。
19、LAT1242 如何让CDC类USB设备批量接收64字节以上数据
STM32 开发者在实现 CDC 类虚拟串口与 PC 主机通信过程中,有时会遇到点麻烦而不得其解。那就是当主机端单次发送的数据不超过 64 字节时,接收正常。
20、LAT1244 奇怪的NRST 管脚异常复位问题
本文探讨一个奇怪的 MCU NRST 管脚异常复位现象。
21、LAT1251 STM32WL LoRa节点入网失败问题分析总结
客户刚使用 STM32WL 做 LoRa 节点应用开发或测试过程中,有时会遇到 LoRa 节点入网失败的问题。使用 STM32WL 开发的 LoRa 节点加入的网络可能是标准的 LoRaWAN 网络或者是私有的 LoRa 网络。
22、LAT1252 关于STM32WL LSE添加反馈电阻后无法起振问题
客户调试 STM32WLE5JB 样机的时候遇到这样一个问题:在调试 LPUART,不打开外部时钟的时候,能够正常打印,若开启外部的 HSE 和 LSE 后就没有打印。
23、LAT1254 巧用STM32CubeIDE之编译警告
在编译项目时,warning 和 error 同样重要,部分隐蔽的问题可能就和warning 相关。当我们对工程代码和编译器有了更深层次的了解后,可以巧妙的使用和屏蔽 warning,帮我们更好地管理项目。
24、LAT1255 直接修改寄存器来输出内部时钟的方法
在对某些不容易复现的问题进行代码调时,需要观察内部时钟的情况,但往往代码之前并没有使能 MCO 功能,在这种情况下就可以使用寄存器直接配置来输出内部时钟到GPIO 脚位上进行观察和测试。
25、LAT1256 使用STM32的DWT单元监控内存
关于 DWT(Data watchpoint and trace unit),相信有很多工程师都知道,其可用于 us级别的延时。
26、LAT1257 建立基于STM32CubeIDE的ClassB工程
大家都知道 ST 的 ClassB 功能安全软件设计包是免费的,也有众多客户基于 STM32CubeIDE 免费的 IDE 进行开发,本文档将展示如何轻松的实现 ClassB 在 STM32CubeIDE 上的移植。
27、LAT1259 STM32使用DMA产生PWM时波形异常分析
有客户反馈,使用 STM32F4 的 TIM2 结合 DMA,产生的 PWM 波形不符合预期,但是相同的配置使用在 TIM3 上,得到的 PWM 波形就是符合预期的。
28、LAT1266 使用Framebuffer_Analyzer工具调试图像显示
根据我们的经验,在使用 STM32GUI 开发平台做 GUI 开发过程中, 经常会遇到一些问题, 如 LCD 无法显示、显示闪烁、花屏等问题。
29、LAT1269 SPI读取数据的最后一位出错问题
客户在项目开发中使用 STM32F427ZGT6 的 SPI 连接外部 Flash 时,发现在常温下能正常读写,但是在高温下一段时间后(大概 5 分钟左右)出现读写异常的情况。
30、LAT1150 STM32G4 应用程序与 Option Bytes 同时烧录问题
客户使用 STM32G474 系列芯片,在烧录应用程序的同时要对 Option Bytes 中的 DBANK进行修改,采用 STlink Utility 或是 CubeProgrammer 工具进行操作,并**整个过程只用一次烧录动作就完成,发现烧录的应用程序无法运行。
31、LAT1151 程序运行在 STM32H750 的外扩 FLASH 上两小时后死机
客户使用 STM32H750VBT6,通过 QSPI 外扩了一个 4M 的 NOR FLASH,采用 memory map 模式。当程序跳转运行到外设 FLASH 后,大约两个小时后程序死机。客户使用的 IDE 是 KEIL,此问题可以固定重现。
32、LAT1154 LPUART 单线半双工通信过程中 stop 位与 start 位重叠的问题
客户在使用 STM32G071RB 的 LPUART 单线半双工模式开发相关的应用时,进行连 续接收发送数据时,客户在检测到 RXNE 位时,认为接收完成,立即进行发送,发现 stop位(波形不完整)与 start 位发生了重叠。
33、LAT1158 STM32H723 的序列 ADC 无法启动转换
客户使用 ADC 进行序列转换,配置完成后,不调用 Cube 库函数而使用寄存器操作进行ADC 转换,发现无法启动 ADC 转换,且无任何报错。如果只使用一个通道转换 ADC,则可以正常启动 ADC 转换。
34、LAT1165 NUCLEO-G474RE 开发板扩展 LSM6DSO 实现 Data Fusion 演示
当使用一个新的开发板做为基板,使用现有软硬件资源,实现对 MEMS sensors 的评估或工程演示时,往往需要快速地得到直观的评估效果。
35、LAT1167 STM32G474 HRTIME PWM 丢波问题分析与解决
STM32G474 中包含了针对数字电源应用的高精度定时器(HRTIMER),客户在应用该定时器产生 PWM 时,发现 PWM 的输出出现了“丢波”现象,本文对该问题进行分析并给出解决方案。
36、AT1170 如何理解 RAMECC FAR 寄存器的值
某客户测试 STM32H753xi 板子上的 ECC 功能,用于监控 AXI-SRAM 区域,但不是很明白 RAMECC FAR 寄存器在 RM0433 中的描述, “Bits 31:0 FADD[31:0]: ECC error failing address”。
37、LAT1171 STM32F745 USART1 Bootloader 失败原因分析与解决
STM32 的 Bootloader 可以支持多种协议的,比如 USART,I2C,DFU 等等,USART Bootloader 是客户使用 STM32 的时候常常会用到的协议。
38、LAT1173高精度定时器的同步功能
STM32G474所含的高精度定时器(HRTIMER)其实包含了多个定时器,多个定时器之间可以单独工作,也可以进行同步,且高精度定时器还能与片上的其他定时器以及其他芯片进行同步,本文将对高精度定时器的同步功能进行介绍。
39、LAT1176 DAC,COMP,HRTIM Fault 功能的使用
这个例程是使用 STM32G474 NUCLEO 进行测试的,集合了 DAC, COMP, HRTIM 的功能模块。
40、LAT1178 关闭SPI会导致WRPERR错误的问题分析
在 STM32 的应用中,SPI 算是用的比较多的外设了,也是单片机最常见外设之一
41、LAT1180 STM32L4R9 的 QuadSPI Flash 通讯速率不理想
本技术文档主要解决客户反应 STM32L4R9 同 QSPI Flash 通讯,测出来的读取速率为 10MB/s, 和理论值相差较大。
42、LAT1183 高精度定时器中single-shot计数模式不工作
客户使用 STM32G474 的高精度定时器,基于 CubeMX 进行外设配置与代码生成,将某个子定时器的计数方式设置为 retriggerable single shot 方式,发现该子定时器无 PWM 输出,在调试模式下发现该子定时器的计数器一直为 0,即计数器一直没有启动,但如果将计数方式修改为continuous 模式,其他保持不变,定时器工作正常。
43、LAT1184 STM32 DCMI的带宽与性能介绍
对于使用 STM32 DCMI 开发相机应用的客户,经常有以下问题:STM32 DCMI 最大支持的像素时钟是多少?STM32F4/F7/H7/U5 能支持 1280×720 的分辨率吗?最大的帧率是多少?如何判断所设计的应用产生的带宽是否能充足?相机输出是选择 8 位、10位、12 位、还是 14 位?针对这些问题,本文档从 DCMI 使用的几个方面,介绍了 STM32 DCMI 在连续抓取模式下带宽的估算,以及提升性能需要注意的事项。
44、LAT1185 一个地址未对齐引起的 HardFault 异常
客户在使用 STM32G070 的时候,KEIL MDK 为编译工具,当编译优化选项设置为Level0 的时候,程序会出现 Hard Fault 异常,而当编译优化选项设置为 Level1 的时候,则程序运行正常。表面上看,这似乎是 KEIL MDK 的问题,通过分析,导致这个问题的本质原因是内存地址没有对齐引起的,下面章节将详细分析该问题的来龙去脉以及解决方法。
45、LAT1187 在Keil中使用STM32CubeProgrammer
STM32 MCU 新产品的早期用户有时候会遇见工具链还在完善中的情形,例如,一部分STM32 工具已经支持该产品,而另外一部分 STM32 工具还在更新中。
46、LAT1189 Timer结合DMA 2D通道实现不同波形输出
客户需要使用 MCU 输出正弦波,但受限于 MCU DAC 数量不足,建议尝试使用 PWM加滤波方式产生正弦波。同时要求正弦波与固定电平交替输出。
47、LAT1197 STM32WB基于Custom Template实现客户定制BLE私有协议
本文的目的旨在使用 STM32CubeMx 以及 Custom Template 例程基于 STM32WB55- Nucleo 实现基于 BLE 私有协议的通用通信框架,使客户快速上手进行产品开发,且可以直接应用在产品上,应用框架的设计如下图所示。
48、LAT1198 通过 KEIL 制作 QSPI 接口的外部 Flash 下载算法
随着用户的应用越来越复杂以及 GUI 等需要大存储空间的需求越来越多,很多时候我们需要将代码或数据放在外扩的 Flash 存储空间。
49、LAT1199 TrustZone架构下LPBAM使用导致的HardFault
客户在 Nucleo-U575ZI 开发板上使用 TrustZone 架构,测试 LPBAM 功能。首先使能了 TrustZone 架构,然后将 LPGPIO 映射到了非安全区,并且配置了 DMA 链表功能,使用 LPTimer 作为触发,自动地修改 LPGPIO 的寄器,从而达到在低功耗模式下,GPIO自动切换的功能。但遇到了 LPDMA 的配置问题,并且程序无法跳转到 Non-Secure 工程。
50、LAT1202 TIM DMA burst 输出变频 PWM 波形
客户需要 MCU 输出一组变频的 PWM 波形来控制外围器件,并且不同频率脉冲的个数也不同。STM32U5 芯片拥有 TIM1/TIM8 高级定时器,还有通用定时器 TIM2/TIM3/TIM4/TIM5 以及 TIM15/TIM16/TIM17。
51、LAT1204 使用 NANOEDGE.AI 工具完成人体姿态识别应用
NanoEdge™ AI 库是 Cartesiam 推出的人工智能静态库,它可以帮助客户直接生成可以运行在嵌入式 Arm Cortex 处理器上的.a 静态库文件。
52、LAT1206 TouchGFX 控件附加Mixin功能的方法介绍
TouchGFX 是专用于 STM32 的图形界面设计软件,可用来低成本开发优秀的图形界面,TouchGFX 现已变的越来越流行。
53、LAT1208 使用STM32CubeMX生成配置代码的文件结构
在阅读 UM1718 文档的时候,发现 CubeMX 有个比较好的功能,可用“.extSettings”文件配置生成代码的工程文件结构。
54、LAT1209 Arm®v7-M架构的STM32如何启用DWT进行计数
客户在使用 STM32H7 的时候,想要使用 DWT 计数来测量代码执行时间,评估执行效率。客户发现在重新上电或 reset 后,无法启用 DWT 进行计数。
55、LAT1210 一个Flash编程错误标志的探析
客户项目中使用的 MCU 型号是 STM32G0B1, 他们反馈在代码中尝试擦除并编程 FLASH时, 发现 FLASH 的状态寄存器显示编程错误(如图 1 所示). 问题是当前代码还没有开始擦除和编程, 怎么就有了编程错误标志了呢 ?
56、LAT1212 STM32GUI TouchGFX Transition 屏幕切换功能简介
TouchGFX 是专用于 STM32 的图形界面设计软件,可基于低成本开发优秀的图形界面,而且它已变的越来越流行。
57、LAT1214 使用BlueNRG LP SoC方案无法扫描到扩展广播包
BlueNRG-LP 是意法半导体第三代低功耗蓝牙单芯片解决方案,兼容低功耗蓝牙 5.2版本。
58、LAT1215 如何配置STM32WB在没有LSE时运行BLE应用程序
首先 LSE 可作为 STM32WB RF Wakeup 和 RTC 的时钟源。 STM32WB RF Wakeup 和 RTC 的时钟源可配置为 LSE,LSE 时钟相对比较稳定且准确,不需要校准,而且 LSE 可在所有的低功耗模式下保持工作。
59、LAT1216 BlueNRG系列芯片Flash操作与BLE事件的互斥处理
在许多基于 BlueNRG-1/2 系列芯片的低功耗蓝牙的设计项目时,客户通常会在 Flash的特定区域存储定制的数据。
60、LAT1218 如何选择和设置外部高速或低速晶体适配BlueNRG-X
鉴于经常有客户对如何选择外部低速晶体,如何测试外部 32khz 时钟,如何直接使用外部32khz 信号源 以及 如何选择外部高速晶体,如何测试和校准频偏存在诸多困惑,我整理了该文档以备解惑用。
61、LAT1220 关于BlueNRG-2在低功耗模式下端口保持的问题
BlueNRG-2 作为一款高性能低成本的低功耗蓝牙 SoC 解决方案,实现了在有限的资源下兼容蓝牙 5.2 协议的功能。
62、LAT1221 BlueNRG-X如何实现外部天线和PA的控制
鉴于以下应用场景,我在这里整理了一些应用指导以方便客户参考: 1. 需要更远的传输距离,想通过外加 PA 的方式来实现; 2. 需要 WIFI 和 BLE 共用一个天线。
63、LAT1223 基于S2-LP实现802.15.4g帧格式的数据透传
S2-LP 硬件上支持 802.15.4g 的帧格式,但是现有的 SDK 包并没有基于该帧格式的示例工程,因此本篇文章将介绍如何实现基于 802.15.4g 帧格式的数据透传。
64、LAT1224 S2-LP的FIFO机制
众所周知,S2-LP 拥有两个数据 FIFO,一个用于数据传送,另外一个用于数据接收,它们各自的长度均为 128 字节。
65、LAT1225 如何配置S2-LP的直接GPIO模式
在使用 Spirit 系列的 Sub1G 产品时,有一些特殊的场景,其数据来源于 GPIO 口,然后再将获取到的 GPIO 数据发送出去。当前 ST Spirit 系列支持以下三种数据模式:
|