3回答

0收藏

[原创] 2、LinkIt ONE 串口

#拆解/开源硬件 #拆解/开源硬件 2845 人阅读 | 3 人回复 | 2016-04-19




LinkIt ONE 具有两个串口:serial 是连接的USB 串口,serila1 是物理串口(P0和P1 引脚)。 serial 直接连接USB即可以使用,和PC通信很方便。Serial1和其它(单片机、UART)通信,直接连接三根线(`TxD、RxD、GND`)即可。




如上图所示,串口的函数还是挺精简的。
  1. > Serial.begin(); //开启串口
  2. >Serial.end();    //关闭串口
  3. >Serial.available();//判断串口缓冲器是否有数据装入
  4. >Serial.read();    //读取串口数据
  5. >Serial.peek();    //返回下一字节(字符)输入数据,但不删除它
  6. >Serial.flush();    //清空串口缓存
  7. >Serial.print();    //写入字符串数据到串口
  8. >Serial.println();   //写入字符串数据+换行到串口
  9. >Serial.write();     //写入二进制数据到串口
  10. >Serial.SerialEvent();//read时触发的事件函数
  11. >Serial.readBytes(buffer,length);//读取固定长度的二进制流
复制代码
下面是一个简单的理解,将串口输入得到的数据,回显出来:
  1. char temp;
  2. char buf[100];
  3. int count;  
  4. void setup()
  5. {
  6.     Serial.begin(115200);
  7.     count = 0;  
  8. }
  9. void loop()
  10. {
  11.     if(Serial.available()>0)
  12.     {
  13.        temp =(char) Serial.read();
  14.        if(temp =='\n')
  15.        {
  16.          buf[count] = '\0';
  17.          count = 0;
  18.          Serial.println(buf);
  19.        }else
  20.        {
  21.           buf[count] = temp;
  22.           count ++;
  23.         
  24.        }
  25.     }
  26. }



复制代码
配置串口 ,很简单,直接使用 Serial.begin(115200);

Serial.available() 是来计数缓冲区的数据的,当Serial.avaible() 大于 0 的时候,表示缓冲区有数据,可以读取。

peek() 和  read() 两个函数都是从缓冲区中读取一个字符,但是 peek() 读取之后,Serial.avilable() 中的值并不会减少。

void flush() 用来清空缓冲区的数据。

调用 end()  函数之后,串口的TX 和 RX 引脚可以作为普通IO 口来使用,解除串口的占用。

分享到:
回复

使用道具 举报

回答|共 3 个

倒序浏览

沙发

kebao_1

发表于 2016-4-20 08:56:03 | 只看该作者

你是来骗经验的吗,这分明就是arduino的通用库啊!!
板凳

糖悦之果飞

发表于 2016-4-20 10:37:39 | 只看该作者

记得要一并将文章发到经验频道哦http://jingyan.eeboard.com/
地板

liunian__92

发表于 2016-4-30 00:17:49 | 只看该作者

kebao_1 发表于 2016-4-20 08:56
你是来骗经验的吗,这分明就是arduino的通用库啊!!

我的天呢,这个就是 arduino 的库文件,
不过骗经验
论坛发帖子也有限制
这种帖子不让发,好吧,不好意思。
你把我屏蔽就好了,,哈哈。。。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条