Skip to main content

STM32 MCUs

Join conversations with your peers and ST experts. Explore the full potential of STM32 microcontrollers for your embedded design.

10000+ Topics
硬件不变的情况下,SPI+DMA 循环模式主机接收 采集电压异常,Normal模式却正常

用SPI+DMA驱动AD4001,用片选信号代替 CONV,采集一个正弦信号。Normalnormal正常,循环模式却不对,求大佬解答!!Normal模式下,每次在 HAL_SPI_RxCpltCallback 函数里面重新启动数据正常,能看到正弦变化规律                                 循环模式下数据就不对了,采集的同样一个交流信号,我在半传输完成回调里面查看,按道理后半部分的数据应该是正常的正弦变化才对,实际却不是,但是去采集直流时又是正常的。                PS:缓冲区开的1200,感觉应该不会更新这么快,就算更新应该局部的数据具有正弦规律    我得猜想:是不是因为我再keil里面是打断点查看的数据,并不会停下SPI+DMA 在循环模式下的硬件工作,导致后台一直在更新,keil显示的数据其实不对配置:配置的区别只修改了DMA是正常还是循环void MX_SPI1_Init(void){/* 用户代码开始 SPI1_Init 0 *//* 用户代码结束 SPI1_Init 0 *//* 用户代码开始SPI1_Init 1 *//* 用户代码结束 SPI1_Init 1 */hspi1.实例 = SPI1;HSPI1 的。Init.Mode = SPI_MODE_MASTER;HSPI1 的。Init.Direction = SPI_DIRECTION_2LINES_RXONLY;HSPI1 的。Init.DataSize = SPI_DATASIZE_32BIT;HSPI1 的。Init.CLKPolarity = SPI_POLARITY_LOW;HSPI1 的。Init.CLKPhase = SPI_PHASE_1EDGE;HSPI1 的。Init.NSS = SPI_NSS_HARD_OUTPUT;HSPI1 的。Init.BaudRatePrescal