[STM32F1] 在 STM32 中不启用 DMA 的情况下使用 FIFO 吗?

[复制链接]
 楼主| WHALEE 发表于 2025-5-28 20:39 | 显示全部楼层 |阅读模式
在 STM32 中不启用 DMA 的情况下使用 FIFO 吗?
想在 STM32CubeIDE 中不启用 USART_DMA情况下使用 FIFO 。可以吗?
如果可能的话,我可以区分数据之间的小延迟。可以根据我的要求处理数据。
t60yz 发表于 2025-5-31 23:38 | 显示全部楼层
STM32H7 系列支持硬件 FIFO 缓冲区,即使你没有使用 DMA,也可以使用 FIFO 来增强数据处理能力。
三生万物 发表于 2025-6-9 11:30 | 显示全部楼层
在STM32中,不启用DMA的情况下完全可以使用FIFO(先进先出队列)来管理USART数据。FIFO是一种常用的数据结构,用于缓冲输入或输出数据,特别适用于需要处理数据流的应用场景
光辉梦境 发表于 2025-6-9 12:00 | 显示全部楼层
其实FIFO本身不依赖于DMA,它可以通过软件实现,使用一个数组和两个指针(或索引)来跟踪数据的写入和读取位置。
一秒落纱 发表于 2025-6-9 14:12 | 显示全部楼层
在代码中定义一个FIFO结构,包括缓冲区、写入和读取索引。
时间戳记录,在接收数据时,可以记录每个数据到达的时间戳(例如使用系统滴答定时器SysTick)
夜阑风雨 发表于 2025-6-9 17:44 | 显示全部楼层
在读取数据时,比较当前数据与前一个数据的时间戳,计算延迟,并根据延迟进行数据处理
远山寻你 发表于 2025-6-9 18:21 | 显示全部楼层
时间戳记录,在接收数据时,可以记录每个数据到达的时间戳(例如使用系统滴答定时器SysTick)
别乱了阵脚 发表于 2025-6-9 20:15 | 显示全部楼层
中断优先级,确保USART中断的优先级适当,以避免数据丢失
淡漠安然 发表于 2025-6-9 23:00 | 显示全部楼层
应根据应用需求选择合适的FIFO大小。如果数据到达速度远快于处理速度,可能需要较大的FIFO
一秒落纱 发表于 2025-6-10 01:00 | 显示全部楼层
在代码中定义一个FIFO结构,包括缓冲区、写入和读取索引
暖了夏天蓝了海 发表于 2025-6-10 07:00 | 显示全部楼层
错误处理,处理FIFO溢出、数据错误等情况。
三生万物 发表于 2025-6-11 11:00 | 显示全部楼层
在STM32中,不启用DMA的情况下完全可以使用FIFO(先进先出队列)来管理USART数据。FIFO是一种常用的数据结构,用于缓冲输入或输出数据,特别适用于需要处理数据流的应用场景
冰春彩落下 发表于 2025-6-11 11:01 | 显示全部楼层
性能优化,在高频数据接收时,注意中断处理的时间,避免长时间占用中断服务例程
江河千里 发表于 2025-6-12 11:00 | 显示全部楼层
FIFO用于存储接收到的数据,直到处理器准备好处理它们。它可以平滑数据流,防止数据丢失,尤其是在处理器忙于其他任务时
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部