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

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

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

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

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

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

static void uart5_rx_thread(void *parameter)
{
rt_size_t size = 0;
char ch = 0;

while (1)
{    	
	rt\_sem\_take(&rx_sem5, RT_WAITING_FOREVER);
	
    size = rt\_device\_read(uart5_dev, 0, &ch, 1);
    if(size == 0)
    {
    	rt\_kprintf("read uart5 fail\n");
    	continue;
    }
	rx_buf[num++] = ch;
	rt\_timer\_start(timer);
	
	rt\_kprintf("%d\n", (uint16\_t )ch);
}
rt\_device\_close(uart5_dev);

}

static void uart5_tx_thread(void *parameter)
{
rt_size_t size = 0;
while(1)
{
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;
}

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

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

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

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

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

注嵌入式)**

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值