[应用相关] STM32外设通信中的缓冲区管理问题

[复制链接]
778|6
 楼主| kepe 发表于 2023-12-31 21:40 | 显示全部楼层 |阅读模式
在STM32外设通信过程中,我遇到了关于缓冲区管理的一些问题,特别是在高速通信时可能导致缓冲区溢出或数据丢失。以下是我用于缓冲区的简化代码:


#define BUFFER_SIZE 256
uint8_t txBuffer[BUFFER_SIZE];
uint8_t rxBuffer[BUFFER_SIZE];

// 外设通信
HAL_SPI_Transmit(&hspi, txBuffer, BUFFER_SIZE, HAL_MAX_DELAY);
HAL_SPI_Receive(&hspi, rxBuffer, BUFFER_SIZE, HAL_MAX_DELAY);





如何有效管理和优化STM32外设通信中的缓冲区。
515192147 发表于 2024-1-25 17:14 | 显示全部楼层
设成  先进后出的  环型 缓冲器
classroom 发表于 2024-3-19 16:24 | 显示全部楼层
尽量减少数据传输的延迟和开销。
呐咯密密 发表于 2024-3-19 17:00 | 显示全部楼层
你这优化在哪
probedog 发表于 2024-3-19 17:23 | 显示全部楼层
如果你的系统支持多线程或任务,可以将发送和接收操作放在不同的线程或任务中执行,这样可以并行处理发送和接收操作,提高整体效率。
laocuo1142 发表于 2024-3-20 08:56 | 显示全部楼层
使用两个缓冲区,一个用于发送,一个用于接收。当一个缓冲区正在使用时,另一个缓冲区可以准备下一批数据。这样可以减少等待时间,并提高通信效率。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

346

帖子

0

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