久芯网

stm32 spi 的dma传输问题

avatar abyssirides 提问时间: 2023-08-05 17:57:10 / 未解决

我在cubeMX中配置好从机spi的rx DMA传输

接收主机发来的数据

想先接收一帧spi 通过判断这个数据帧来选择DMA传输的存储位置和传输的长度

HAL_SPI_Receive(&hspi1, (uint8_t *)&spi_flag,1,1000);

if(0x23==spi_flag){

HAL_SPI_Receive_DMA(&hspi1, (uint8_t *)spi_imu_buf,6);

}else if(0x32==spi_flag){

HAL_SPI_Receive_DMA(&hspi1, (uint8_t *)spi_key_buf,3);

}

但这样从机得到的数据和主机发送的有很大差别


如需获得 stm32 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

1个回答
  • avatar xmshao
    回答时间: 2023-08-05 18:21:20

    不知你说的发的跟收的数据有很多差别具体指的什么,内容?个数?还是两者都有问题? 如果说主要问题出现在数据个数少了,收到内容只是部分,你确认下你发送接收两者是否同步,即发送前 接收这边是否准备好了?如果说接收数据错误,多检查下线路以及干扰方面的问题。你可以尝试将时钟调低点测试。

会员中心 微信客服
客服
回到顶部