FreeRTOS_消息缓冲区

问题:消息缓冲区发送失败

现象:

1、创建消息缓冲区成功,xBufferSizeBytes设置为8; 

MessageBufferHandle_t xMessageBufferCreate( size_t xBufferSizeBytes );

2、发送失败

xBytesSent = xMessageBufferSend(UartToLed_MBHandle_t, Led_Control_Buf,8, 100);

原因:消息缓冲区创建时的xBufferSizeBytes 参数表示:需要发送的消息字节+额外的 sizeof( size_t ) 字节(存储消息的长度), sizeof( size_t ) 在 32 位架构上的大小通常是 4 个字节,因此在大多数 32 位架构中,10 字节的消息将占用 14 字节的 消息缓冲区空间。在创建消息缓冲区是只注意了消息字节的空间,未注意表示长度的空间,导致发送失败

posted @ 2024-02-06 09:00  易安yan  阅读(143)  评论(0)    收藏  举报