|
这两天做个新产品用到了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 地址要对齐。
|
STM32F207IG10Mbps 半双工以太网异常
STM32F407xx 是否可以输出 50MHz 时钟供给 RMII 以太网 PHY
STM32H750的上电BOR生效电压
USB Audio Class 1.0 Type I IEEE_FLOAT 描述符问题
STM32H563的QSPI接口不能读取W25Q256的后128MB数据
STM32H7的SMPS供电
STM32H7无法芯片
stm32cubeMx生成stm32H743IIT6 cmake工程时全局变量自动定义到DTCM段
CubeMX 生成的 STM32H7 CMake 工程打开串口 DMA 无法正常发送数据,如何解决?
TOF传感器无法正确识别物体
微信公众号
手机版