本帖最后由 ljxh401 于 2025-11-14 00:50 编辑
两片STM32F103进行SPI通信,
主机采用SPI+DMA进行发送,分机DMA接收,监控片选脚的上升沿中断
主机设置拉低片选脚,DMA发送,设置SPI发送寄存器空中断,在spi发送空中断中拉升片选脚
结果发送32字节数据,分机CPU只接收到10字节数据,
如果取消spi发送空中断里面拉升片选脚的,分机能接收完整数据
最后修改成 启动DMA发送中断,发送完毕进入dma中断,
在dma中断中才启动SPI发送空中断,
我原来觉得 启动 DMA 是不会中途触发 TXE 事件的,直到DMA结束,但是发现在dma的传输过程就产生了txe中断,导致错误关闭CS信号
觉得很奇怪了,为什么DMA没有会发送了10个字节后卡断了一下 这个才是我觉得不明白的地方
|