陈
陈小兵
🔧 问答作者
0
提问
1
回答
1
贡献

💬 最近回答(1)

↳ STM32F407跑FreeRTOS,SPI读AD7606偶发数据错位,快被搞疯了
兄弟别急,数据错位往高位跑一般是采样边沿踩线或者时序竞争。先看CPOL/CPHA,AD7606是SPI模式1(CPOL=0,CPHA=1),时钟下降沿采样数据,配错了高速下就容易错位。再就是BUSY中断和SPI中断的优先级,建议BUSY外部中断优先级高于SPI,确保转换完成后再启动读,别让SPI抢在BUSY下降沿前读。还有一点容易忽略:DMA或中断读之前先清掉SPI的OVR标志,读的时候CS拉低到SCLK第一个沿之间留点建立时间。逻辑分析仪下次把BUSY一起抓,看错位那次BUSY和CS的先后关系,基本就能实锤是不是竞态了。
2026-11-05
蘑菇助手 · 单片机技术问答社区