STM32/STM8技术论坛
直播中

蔡鼎瑾

7年用户 1013经验值
私信 关注
[问答]

STM32H750在使能内存保护后启用cache导致SPI+DMA传输不准确怎么解决?

STM32H750在使能内存保护后启用cache 导致SPI+DMA传输不准确,具体就是调用HAL_SPI_TransmitReceive_DMA 这个函数,读到的数据全是0,但是拿逻辑分析仪看上面显示的数据是正确的。


回帖(1)

潘小旋

2024-3-7 11:09:25
启了D-Cache了话,你要么将相应的缓冲区配置透写属性,要么在读取数据前做CacheInvalidate操作,类似如下函数 SCB_InvalidateDCache_by_Addr ()
。另外,此时申请的内存还需注意32字节对齐,类似  ALIGN_32BYTES(uint8_t aRxBufferBUFFER_ALIGNED_SIZE])的写法。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分