TiUART - 通用异步收发传输器
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。具体可参考https://baike.baidu.com/item/UART/4429746?fr=aladdin或https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter。
TiJOS Framework提供TiUART来支持UART功能,其将UART按照port分组,共支持256组,组号范围0-255,即:port0-port255;每组都支持指定模式的单独设置。
Java包
tijos.framework.devicecenter
TiUART工作模式定义
项目 | 参数 | 说明 |
---|---|---|
波特率 | ...、1200bps 、2400bps 、 ... | 支持的通讯波特率,受硬件平台限制 |
数据位 | 5 / 6 / 7 / 8 / 9 | 数据位数 |
停止位 | STOPBIT_1 / STOPBIT_2 / STOPBIT_0_5 / STOPBIT_1_5 | 停止位数:1 / 2 / 0.5 / 1.5 |
奇偶校验 | MODE_PARITY_NONE / MODE_PARITY_ODD / MODE_PARITY_EVEN | 无校验/奇校验/偶校验 |
缓冲类型 | BUFF_READ/ BUFF_WRITE/ BUFF_WR | 读缓冲/写缓冲/读写缓冲 |
TiUART方法定义
TiUART类中主要的方法:
方法 | 说明 |
---|---|
TiUART open(int portID) | 通过指定port打开指定UART,返回TiUART对象 |
void close() | 关闭已打开的TiUART实例 |
void setWorkParameters(int dataBits, int stopBits, int parity,int baudRate) | 设置工作模式,数据位、停止位,奇偶校验位、波特率 |
int available() | 检查有效接收数据长度,单位字节 |
void clear(int buffer) | 根据不同缓冲类型清除缓冲区 |
int read(byte[] data, int offset, int len) | 读取数据,返回实际读取长度 |
int write(byte[] data, int offset, int len) | 写入数据,返回实际写入长度 |
TiUART类中他方法的技术说明请参考TiJOS Framework说明文档。
TiUART对象创建与销毁
TiUART对象的创建需要调用open静态方法,传入指定port参数,返回创建的接口对象。
TiUART对象的销毁需要调用close方法。
...
int uartPort0 = 0;
TiUART uart0 = TiUART.open(uartPort0);
...
...
...
uart0.close();
TiUART模式设置
TiUART模式设置通过setWorkParameters方法设置,设置参数为数据位、结束位、奇偶校验位和波特率。
...
uart0.setWorkParameters(8, TiUART.STOPBIT_1, TiUART.PARITY_NONE, 9600); //8数据位, 1停止位, 无校验位,波特率9600bps
...
注意:模式支持受平台特性限制,设置时须了解硬件平台特性。
TiUART输入输出
TiUART的输入输出操作通过available、clear、read和write方法完成。
...
uart0.clear(TiUART.BUFF_WR); //清除读写缓冲
while(true) {
int length = uart0.available();//获取当前有效数据长度
if(length <= 0)
continue; //无数据继续等待
byte[] buffer = new byte[length];
length = uart0.read(buffer, 0, length); //接收数据
uart0.write(buffer, 0, length); //将接收到的数据发送
}
具体可参考TiJOS Framework说明文档。