问题:STM32G0 系列 SPI单线与AD7694通信采集数据,使用stm32cube 生成的HAL库编写
刚开始HAL_SPI_Receive,执行到这句时,一直卡在这里不在往下执行。
最终发现,我使用正点原子的 sysytick 延时函数delay_us, 与这里用于计算超时的sysytick有冲突如,具体冲突原因,未知
delay_us函数,正点原子的
HAL_SPI_Receive函数
最后去掉delay_us函数,延时改为使用timer 去做,发现HAL_SPI_Receive能够正常返回
但是函数能返回,却一直报超时,于是使用逻辑分析仪采集SPI的数据,发现CLK仅有一个脉冲
检查SPI代码,发现SPI使用的是2分频,怀疑是否是波特率过快,导致CLK有问题
于是修改为更高的分频,SPI_BAUDRATEPRESCALER_256
此后数据获取正常