你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
xmshao 发表于 2025-1-7 16:02 是不是多收了个CRC结果进来了?</p> <p>
主机先收了一笔CRC帧,然后存在了hspi->pRxBuffPtr里,接着多收了一笔从机随机的数据,但这个数据是丢弃的,代码注释这里是接收CRC帧,我觉得这个写法有bug,应用的时候要注意定义buffer数组的大小,不然会越界。
夜深了,睡不着
晚上好啊,兄弟们
第三季度啦,兄弟们
STM32G070RBT6TR ADC采集定点电压误差较大,有没有优化方向
电脑主机一亮一灭启动不了
LIS2MDL X轴数据读取问题
无法完全整片擦除 STM32H Nucleo
周末卡点打卡
使用touchgfx控件modalWindow,显示会有条纹
stm32cubemx和数据手册对不上
函数说明在这个地方稍有点不够清晰。如果开启了CRC校验,又没有为其预留接收存储空间,可能会有些问题。
问题应该是表现在CRC码没接收进来无法完成校验,或者说在DMA循环接收时发生数据滚动难以辨别数据
和校验码。
至于你说的越界,按理是不该发生的。因为即使没为CRC码准备接收空间,当我们基于查询或 中断方式进行
接收时,我们是根据预定的SIZE大小来进行接收和存储的,之后的数据就丢弃了,不会发生越界。
如果是DMA方式,Normal模式的话,传输指定SIZE个数的数据后就停下来,之后的数据也丢弃了,也不会发生越界。
如果是DMA 循环模式,每传输指定SIZE个数的数据后,它就调头重新开始存储了,怎么也不会发生越界。
你可以关闭CRC功能再进行接收,然后比较下。
主机先收了一笔CRC帧,然后存在了hspi->pRxBuffPtr里,接着多收了一笔从机随机的数据,但这个数据是丢弃的,代码注释这里是接收CRC帧,我觉得这个写法有bug,应用的时候要注意定义buffer数组的大小,不然会越界。