rt_thread系统 串口5收发任意长度数据_rt-thread怎么读取串口接受的数据长度(2)

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

{
	rt\_sem\_take(&end_sem, RT_WAITING_FOREVER);

	size = rt\_device\_write(uart5_dev, 0, rx_buf, num);
	if(size == 0)
    {
    	rt\_kprintf("write uart5 fail\n");
    	continue;
    }
	rt\_memset(rx_buf, 0, sizeof(rx_buf));
	num = 0;
}
return ;

}

static void timeout(void *parameter)
{
rt_sem_release(&end_sem);

rt\_timer\_stop(timer);

}

int main(void)
{
rt_err_t ret;

char str[] = "hello RT-Thread!";

uart5_dev= rt\_device\_find("uart5");
if(uart5_dev == RT_NULL)
{
	rt\_kprintf("find uart5 fail\n");
	return RT_ERROR;
}

ret = rt\_device\_open(uart5_dev, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM); 						   
if(ret != RT_EOK)
{
	rt\_kprintf("open uart5 fail\n");
	return RT_ERROR;
}

rt\_sem\_init(&end_sem, "end\_sem", 0, RT_IPC_FLAG_FIFO);
rt\_sem\_init(&rx_sem5, "rx\_sem5", 0, RT_IPC_FLAG_FIFO);

/\* 设置接收回调函数 \*/
rt\_device\_set\_rx\_indicate(uart5_dev, uart_input);

/\* 发送字符串 \*/
rt_size_t size = rt\_device\_write(uart5_dev, 0, str, (sizeof(str) - 1));
if(size == 0)
{
	rt\_kprintf("write uart fail\n");
	return RT_ERROR;
}

/\* 创建 serial 线程 \*/
rt_thread_t rx_thread = rt\_thread\_create("serial", uart5_rx_thread, RT_NULL, 1024, 25, 10);
if (rx_thread == RT_NULL)
{
	rt\_kprintf("thread create fail\n");
    return RT_ERROR;
}
rt\_thread\_startup(rx_thread);

rt_thread_t tx_thread = rt\_thread\_create("serial", uart5_tx_thread, RT_NULL, 1024, 25, 10);
if (tx_thread == RT_NULL)
{
	rt\_kprintf("thread create fail\n");
    return RT_ERROR;
}
rt\_thread\_startup(tx_thread);

/\* 创建 周期定时器 \*/
timer = rt\_timer\_create("timer", timeout,
                         RT_NULL, 200,
                         RT_TIMER_FLAG_PERIODIC);
if(timer == RT_NULL)
{
	rt\_kprintf("timer create fail\n");
    return RT_ERROR;
}

return RT_EOK;

}


***注意***:数据接收最好使用中断+DMA方式,不然在接收大量数据时,容易出现数据丢失问题!!!






**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/289b1e94d83a35b3120f450f45cea4ec.png)
![img](https://img-blog.csdnimg.cn/img_convert/e52c82de471911ac1133960303854dfb.png)

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

嵌入式)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值