aardio封装的串口通讯库示例
编辑时间:2017-09-22 作者:程序代码Jacen 浏览量:7072 来源:ardio公众号

最开始接触aardio就是用来写了个串口通讯的,这里我以前也说过。现在作者也封装了一个库,正好学习。放上来。

有时候只有自己写过了再看高水平写的,才能更快的学习认识自己的不足。

本来想放库上来,字数超过了,自己到扩展库去下载吧。名字为sio.aardio


新增的sio串口通信扩展库(基于Pcomm),用法非常简单,示例如下:


import win;
import console; 
import sio;

var sport = sio.port("COM1");

//设置串口(波特率,数据位,停止位,校验位)
sport.ioctl(9600,8,1,"even");

//接收到字符时响应事件,注意这个回调函数是线程回调函数
sport.termCntIrqThread(1,function(port){
    
import sio;
    
var sport = sio.port(port);
    io.print(
"收到ASCII",sport.read() ); //或sport.readHex()
} )

//ASCII写入
sport.write("test");

//HEX写入
sport.writeHex("74 65 73 74");
//上面相当于 sport.write( string.unhex("74 65 73 74"," ") );

console.open();
sport.transmitAscii(
"/test.txt",
    
function(length,bufferSize,buffer,totalLength){
        io.print( length,totalLength )
    })

//如果传输文件使用进度回调函数,则必须启动消息循环
win.loopMessage();

//关闭串口
sport.close();


更正:上面的消息循环函数并非必须,控制台里如果要等待读数据事件(多线程),用console.pause()暂停不退出就行

来说两句吧