
这两天做个新产品用到了STM32H743ZIT6 采集6路ADC信号,通过DMA 方式方式读取ADC数组中的值,现在有个问题,单步执行的时候ADC数组中的值都是对的,系统全速运行时,会有数据变成0xff,而且不一定,什么时候出问题,看示波器上该信号是没有0xff这种可能性的,程序中用了cache, 采用了 正点原子例程里的cache 透传的方式。 void CPU_CACHE_Enable(void) { / Enable I-Cache / SCB_EnableICache(); / Enable D-Cache / SCB_EnableDCache(); SCB->CACR|=1<<2; } 看到有人讲要把cache清零 cache 无效化操作,但不知道这些操作应该在何时进行,譬如cache清零函数,应该何时清,是在dma中断来的时候清吗?还是在回调函数读出数据再清。 顺便说一下 我用的库是STM32CubeHV1.3.0 不知道新的库会不会兼容性更好 有链接吗 想用新的库 |
可以参考一下官方例程,都是在回调函数里做无效化操作。 因为通常代码逻辑要都是在这后面才开始使用这些数据的。这里注意,buffer 地址要对齐。![]() ![]() |
请教下关于 stm32h7x5,7x7 系列双核 dsi ltdc 显示驱动的时钟频率配置 ?
STM32H750VBT6 + W5500 + 激光雷达点云
STM32H755双核编程如何入门
请教SPI用LL读取的问题
STM32H7使用HAL库如何控制外置USB HS PHY进入低功耗
请问如何在下载程序时保护flash中的用户数据不被覆盖?
H723ZG开发板的下载口可以使用串口功能吗
nanoEdgeAI部署在keil5出现的问题
stm32H755BIT6 TIM1中断问题
用cubemx配置好串口后,再配置一个adc输入就会卡在HardFault_Handler里不动了。