[AT32F415] SPI读取24位数据发生了数据颠倒

[复制链接]
renzheshengui 发表于 2022-11-7 13:04 | 显示全部楼层
发送之前读一次SPI-DR寄存器,操作:片选上升沿过来时,先SSI置位1,读SPI-DR值,清空DMA的中断寄存器,使能DMA,SSI值0;
wakayi 发表于 2022-11-7 13:30 | 显示全部楼层
软件开肯定比硬件开得慢,要是使用NSS外部中断的下降沿进行中断:可能来不及操作SSI位,所以会丢失某一位。所以我的经验是,放在数据传送完成的上升沿中断中,先SSI置位1,此后清空DMA的中断寄存器,重新装载数据寄存器(可以不装载)使能DMA,SSI值0;很好完美解决了数据错位的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表