好奇龙猫 2022-04-22 14:43 采纳率: 50%
浏览 57
已结题

ringblk 如何使用 初始化 存储与取出数据(注意:不要讲原理,要样例)?

问题遇到的现象和发生背景 \

自己之前学习 使用了ringbuffer
但是对于ringblk比较疑惑,最好如下方式展示

问题相关代码,请勿粘贴截图

以下为ringbuffer 展示


//>>>第一步 初始化结构体
#define UART4_TX_Buffer_Len  1024  //定义大小
rt_uint8_t uart4_tx_buffer[UART4_TX_Buffer_Len] = {0};
struct rt_ringbuffer uart4_txrb;
//>>>第二步 初始化
rt_ringbuffer_init(&uart4_txrb,uart4_tx_buffer,UART4_TX_Buffer_Len);
 //>>>第三步 向ringbuffer里写入数据
 rt_ringbuffer_put(&uart4_txrb,"uart4_ringbuffer_out", sizeof("uart4—ringbuffer_out"));
  rt_thread_delay(1000);
 //>>>第四步 构建一个函数从ringbuffer里面读出来
    fnUart4_ringbuffer_422_send_msg_handle();
    
    
    void fnUart4_ringbuffer_422_send_msg_handle(void)
{

    static rt_uint8_t Uart4read_len = 0;
    static rt_uint8_t uartx_msg_temp[UART4_TX_Buffer_Len];
     //>>>第五步读下,看看有没有数据
    Uart4read_len = rt_ringbuffer_data_len(&uart4_txrb);
     //有数据则进入
    if(Uart4read_len > 0)
    {
        //>>>读出来,放在零食数组内
        rt_ringbuffer_get(&uart4_txrb,uartx_msg_temp,Uart4read_len);
        //>>>>发走 这么做在多线程比较适用
        rt_device_write(u4_dev, 0, uartx_msg_temp, rt_strlen(uartx_msg_temp));
    }
}

我的解答思路和尝试过的方法

在网上找到的全部是介绍原理的,没有实例代码,很苦恼。

我想要达到的结果

有相应代码实例

  • 写回答

1条回答 默认 最新

  • 歇歇 2022-04-22 21:44
    关注

    RT-Thread 隐藏的宝藏之ringblk
    https://blog.csdn.net/whj123999/article/details/114794025
    没时间写代码

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月26日
  • 创建了问题 4月22日

悬赏问题

  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗