【TRIO-Basic从入门到精通教程十五】Trio自由串口通讯

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guimotion/article/details/80067349

    亲爱的朋友们,大家好!今天给大家带来最基础的功能,串口通讯。相信这个大家并不陌生。modbusRTU,Membus等等协议都是基于串口上搭建出来的软件通讯协议。希望本次博客给大家带来一点点收获,老鸟可以跳过本章节。。。

    废话就不多说,今天就开始讲讲最基础的通讯功能,万丈高楼平地起嘛大笑

讲串口通讯之前,我们列举下相关指令:

1.

GET从数据缓冲流获取一个字符

实例如下:

//获取一个字符存放在临时变量中

DIM get_str AS INTEGER

GET #2,get_str

2.

PRINT按字符流发送数据

实例如下:

//发送一个字符串

PRINT #2,"This is Test:"

//发送一个字符

PRINT #2,CHR(48);

PRINT #2,CHR($30);

3.

ADDRESS串口站点地址

4.

SETCOM设置串口通讯参数

我们重点讲下setcom


实例如下:(1)设置本地站点2,波特率9600,8个数据位,1个停止位,偶校验,232硬件,自由口通讯

ADDRESS=2

SETCOM(9600,8,1,2,1,0)

(2)设置本地站点1,波特率9600,8个数据位,1个停止位,偶校验,485硬件,自由口通讯

ADDRESS=1

SETCOM(9600,8,1,2,2,0,0,3,0)

预备知识讲完了,那么接下来我们来看代码,看执行效果。

DIM get_str,data_num AS INTEGER

ADDRESS=1
'RS232
SETCOM(9600,8,1,2,1,0)
'RS485
SETCOM(9600,8,1,2,2,0,0,3,0)
WA(100)

WHILE TRUE
    PRINT #2,"This is Test:"
    PRINT #2,data_num;CHR(13);CHR(10);
    WA(100)
    IF KEY #2 THEN
        WHILE KEY #2
            GET #2,get_str
            PRINT #2,CHR(get_str);
        WEND
    ENDIF
    data_num=data_num+1
WEND
注意事项:发送端和接收端通讯波特率、停止位、校验位需要统一一致。


执行效果


发送和接收正常

亲爱的兄弟们,姐弟们,今天就到此结束了,谢谢大家阅读。。。


猜你喜欢

转载自blog.csdn.net/guimotion/article/details/80067349
今日推荐