介绍一下如何使用瑞萨的串口,当然使用串口的配置很简单只要,用代码生成器配置一下就行了。如果你也用的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;
return m;
}
uint8_t testQueue(void)//检查数据中是否有数据
{
return (queuetail == queuehead) ? 0:1;
}