【TRIO-Basic从入门到精通教程十五】Trio自由串口通讯
亲爱的朋友们,大家好!今天给大家带来最基础的功能,串口通讯。相信这个大家并不陌生。
modbusRTU,Membus等等协议都是基于串口上搭建出来的软件通讯协议。
希望本次博客给大家带来一点点收获,老鸟可以跳过本章节。。。
TRIO basic编程,实现232/485 自有协议通讯.实现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
注意事项:发送端和接收端通讯波特率、停止位、校验位需要统一一致。
执行效果
发送和接收正常
亲爱的兄弟们,姐弟们,今天就到此结束了,谢谢大家阅读。。。