打印
[应用相关]

STM32外设通信中的缓冲区管理问题

[复制链接]
475|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 | 只看该作者
你这优化在哪

使用特权

评论回复
5
probedog| | 2024-3-19 17:23 | 只看该作者
如果你的系统支持多线程或任务,可以将发送和接收操作放在不同的线程或任务中执行,这样可以并行处理发送和接收操作,提高整体效率。

使用特权

评论回复
6
laocuo1142| | 2024-3-20 08:56 | 只看该作者
使用两个缓冲区,一个用于发送,一个用于接收。当一个缓冲区正在使用时,另一个缓冲区可以准备下一批数据。这样可以减少等待时间,并提高通信效率。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

207

帖子

0

粉丝