华大MCU之七:DMA 导致 SPI 异常停止的原因分析、DMA 配置的那些坑


在最近的项目测试中发现,SPI 通信总是莫名其妙的失败,查看寄存器发现 SPI 已经被停止了。根据手册,SPI 在异常情况下会被强制停止(SPI 的使能为被清零),而根据波形显示通信过程没有问题。
在最近的项目测试中发现,SPI 通信总是莫名其妙的失败,查看寄存器发现 SPI 已经被停止了。根据手册,SPI 在异常情况下会被强制停止(SPI 的使能为被清零),而根据波形显示通信过程没有问题。
首先说一下,我之前的开发流程是:VSCode 编辑代码 + Keil 编译及调试。Keil 的调试功能虽然很强大,但是多数功能需要配合 ARM 自家的 ULINKpro 才可以用,例如 Performance Analyzer、Event Viewer 等。而我手头只有Jlink 和 ULINK 非 pro 版的…
在最近的项目中,随着代码量的不断增加,Keil 的编译速度瓶颈越来越明显!有的问题往往是调试一分钟,编译半小时!编译过慢的问题已经严重影响工作效率,于是开始寻找一个替代品!
Ozone 调试
起初,在 SEGGER 官网发现了一个名为 Ozone 的 Jlink 专用的调试器,非常小巧,调试也挺好用。不过,它仅仅就是个 Jlink 配套的调试器,不能编译代码。如果使用它,开发流程就是:VSCode 编辑代码 + Keil 编译 + Ozone 调试。
SPI 主机要求只发送数据,不进行接收(主机只有数据输出引脚)! 这就要求在从机 SPI 可以不发送数据,节省一个 MCU 的 IO。
本文主要介绍在嵌入式开发中用来输出log的方法,这些方法都是在实际开发过程中使用过的。
USART的功能包括同步、异步模式、双工通信、半工通信等。
在最近使用华大 MCU 时,遇到了不少坑,这里记录一下,以方便在以后升级驱动库!其中,有些问题仅仅是在由 ST 切换到 华大之后不太适于的问题,有些是驱动库的更改问题!
STM32H7双核单片机内部集成了CM7和CM4这两个内核,在目前官方提供的例程中,大都是使用CM7作为Master初始化系统时钟,然后通过释放硬件信号量HSEM唤醒CM4,那么是否可以将CM7与CM4的角色互换,让CM4作为Master去初始化系统时钟呢?
随着人们对智能电池组系统的功能需求不断增加,选择合适的 MCU 也变的越来越重要。在本文中,我们将对 MSP430的生态系统进行深入的探讨,帮助读者了解如何利用这些功能来解决电池组系统中的挑战。
STM32F10xxx支持三种复位形式,分别为系统复位、上电复位和备份区域复位。
华大 MCU 时钟的配置,与 ST 的类似,都有很多选择,用户可以根据需要灵活选择。