查看: 247|回复: 3

[原创] 2、LinkIt ONE 串口

[复制链接]

22

主题

4

好友

3261

积分

状元

Rank: 6Rank: 6

  • TA的每日心情
    慵懒
    2016-10-17 12:07
  • 签到天数: 306 天

    [LV.8]以坛为家I

    爱板会员勋章

    发表于 2016-4-19 20:10:44 |显示全部楼层
    1000px-LinkItONE_RESOURCE.png



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

    serial.png



    如上图所示,串口的函数还是挺精简的。
    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

    主题

    1

    好友

    285

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    开心
    2016-10-11 09:08
  • 签到天数: 30 天

    [LV.5]常住居民I

    爱板会员勋章

    发表于 2016-4-20 08:56:03 |显示全部楼层
    你是来骗经验的吗,这分明就是arduino的通用库啊!!
    回复

    使用道具 举报

    195

    主题

    3

    好友

    9657

    积分

    超级版主

    Rank: 8Rank: 8

    该用户从未签到

    发表于 2016-4-20 10:37:39 |显示全部楼层
    记得要一并将文章发到经验频道哦http://jingyan.eeboard.com/
    回复

    使用道具 举报

    22

    主题

    4

    好友

    3261

    积分

    状元

    Rank: 6Rank: 6

  • TA的每日心情
    慵懒
    2016-10-17 12:07
  • 签到天数: 306 天

    [LV.8]以坛为家I

    爱板会员勋章

    发表于 2016-4-30 00:17:49 |显示全部楼层
    kebao_1 发表于 2016-4-20 08:56
    你是来骗经验的吗,这分明就是arduino的通用库啊!!

    我的天呢,这个就是 arduino 的库文件,
    不过骗经验
    论坛发帖子也有限制
    这种帖子不让发,好吧,不好意思。
    你把我屏蔽就好了,,哈哈。。。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

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


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-10 09:07 , Processed in 0.093793 second(s), 13 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部