硬汉嵌入式论坛

 找回密码
 立即注册
查看: 262|回复: 0
收起左侧

[SPI全双工]从机一收一发机制分享

[复制链接]

16

主题

78

回帖

126

积分

初级会员

积分
126
发表于 2025-8-29 09:09:39 | 显示全部楼层 |阅读模式
SPI RXDMA配置为环形模式,TXDMA配置为正常模式
CS下降沿:

接收模式不做任何判断(因为中断延时,可能已经开始DMA传输)
发送模式不做任何判断
(因为中断延时,可能已经开始DMA传输)
CS上升沿:
接收模式释放信号量,通知线程本次数据接收完毕
发送模式关闭TXDMA,TX切换为空闲模式(注意hal库关闭dma是TX/RX都关闭了,这里需要自己实现)
接收线程:
获取信号量
   得到信号量后,获取DMA传输剩余字节数。同时根据上一次DMA传输字节数与本次剩余字节数进行计算,得到dma缓冲区的数据起始位置及长度进行拷贝
   拷贝完毕后释放信号量,通知解析线程
解析线程:

获取信号量
   得到信号量后,解析数据。
   根据解析数据判断是否需要发送,是则开启发送模式

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-9-26 19:29 , Processed in 0.034615 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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