瑞萨单片机(R5F100LE)串口队列的实现和UART使用心得

本文介绍了在瑞萨R5F100LE单片机上实现串口队列的方法,通过环形队列的putMsg、getMsg和testQueue函数进行数据收发。文章强调了在处理串口数据时,需要注意接收完整数据的延时处理,并推荐了strtok等字符串处理函数用于解析接收到的数据。此外,还提到了cubeSuite工具和工程链接。
摘要由CSDN通过智能技术生成

    介绍一下如何使用瑞萨的串口,当然使用串口的配置很简单只要,用代码生成器配置一下就行了。如果你也用的R78/G13这个套件,使用串口与电脑通信的话,还需要一个USB转TTL的插头,板子上没有232电平转换电路。如果没用过串口的话这有个教程R78/G13开发套件 快速入门教程。要有这里就不介绍如何配置串口了,重点写一下串口队列的实现,ardiuno的串口用起来很方便,因为他有一个串口队列,这篇文章介绍在,R5F100LE中实现一个环形串口队列。

    环形队列就是头尾相连的队列,如果放入的数据不超出定义的队列长度,就可以一直使用,不用考虑队列的长度。环形队列的实现,主要就是三个函数,putMsg()将数据放入队列中,getMsg()将数据从队列中取出,取出的是第一个放入队列中的数据,这也是队列的基本特点。testQueue()检查队列中是否有数据,有数据的话就放回1。

#define QUEUELEN 256

uint8_t queuehead = 0, queuetail = 0;//队列头尾的指示
uint8_t msg[QUEUELEN];//队列存放数组

void putMsg(uint8_t m)    //将数据放入队列
{
	msg[queuetail] = m;
	if(++queuetail >= QUEUELEN) queuetail = 0;
}

uint8_t getMsg(void)    //从队列中取出数据,这个数据是最先放入队列的那个数据
{
	uint8_t m = msg[queuehead];
	if(++queuehead >= QUEUELEN) queuehead
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值