UART - Shaofa/AliOS-Things-Certification-Manual GitHub Wiki

#UART API

API
说明
UART.open(id)
功能:打开串口
参数: id:和板级配置文件中的id保持一致
返回值:返回资源handle
UART.read(handle,cb)
功能:从串口中读取数据
参数: handle:资源handle,为UART.open的返回值;
cb:读回调,返回读取状态值err和数据;
返回值:0=ok other=fail
UART.on(handle,cb)
功能:从串口中读取数据;
参数: handle:资源handle,为UART.open的返回值;
cb:监控回调,返回读取状态值err和数据;
返回值:0=ok other=fail
UART.write(handle,str)
功能:串口发送数据
参数: handle:资源handle,为UART.open的返回值;  
          str:待发送字符串
返回值:0=ok other=fail
UART.close(handle)
功能:关闭串口;
参数: handle:资源handle,为UART.open的返回值;
返回值:0=ok other=fail

#板级配置参数

参数名
类型/功能/值
说明
"id"
功能:资源唯一性标志
类型:string
值:任意,保持数组内id值唯一;
该id值和js层open时的id值保持一致;
"port"
功能:端口值;
类型:number
值:和板级资源描述保持一致;
该port值和HAL层API对应的port保持一致;
"data_width"
功能:串口数据宽度值;
类型:number
值:0=5bit;1=6bit;2=7bit;3=8bit; 4=9bit;
"baud_rate"
功能:串口波特率;
类型:number
值:用户自定义;
波特率值一般是常见的波特率值,对于特殊的波特率值,在设定前要确定芯片是否支持;
"stop_bits"
功能:串口停止位;
类型:number
值:0=1bit停止位; 1=2bit停止位;
一般是1bit停止位
"flow_control"
功能:串口流控制;
类型:number
值:0=禁止流控; 1=使能cts流控;2=使能rts流控;3=使能cts和rts流控;
"parity_config"
功能:串口奇偶校验
类型:number
值:0=无校验;1=奇校验;2=偶校验;

#板级配置示范

{
	"UART":[
		{
		"id":"uart1",
		"port":1,
		"data_width":3,
		"baud_rate":115200,
		"stop_bits":0,
		"flow_control":0,
		"parity_config":0
		},
		{
		"id":"uart2",
		"port":2,
		"data_width":3,
		"baud_rate":115200,
		"stop_bits":0,
		"flow_control":0,
		"parity_config":0
		}
	]
}

#DeveloperKit之UART

#硬件

1)developerkit开发板; 2)FT232串口模块;

1.jpg | left | 505x383.8

123.jpg | left | 505x375

#接线

TX引脚 连接 FT232 的RX引脚; RX引脚 连接 FT232 的TX引脚; VCC引脚 连接 FT232 的VCC引脚; GND引脚 连接 FT232 的GND引脚;

#配置

/*apps/js/board_config.json*/
{
	"UART":[
		{
		"id":"uart2",
		"port":2,
		"data_width":3,
		"baud_rate":115200,
		"stop_bits":0,
		"flow_control":0,
		"parity_config":0
		}
	]
}

#代码

var handle=UART.open('uart2');
if(handle>0){
var value = UART.write(handle,'hello\r\n');
UART.on(handle,function(data){ 
    console.log(data);    
});
} else {
	console.log('open uart2 fail!');
}

#现象

FT232连接PC端的串口软件,可以进行数据的接收和发送。

#ESP32之UART

#硬件

1)ESP32开发板; 2)FT232串口模块;

#接线

EPS32 IO32引脚 连接 FT232 的RX引脚; EPS32 IO33引脚 连接 FT232 的TX引脚; ESP32 3.3v引脚 连接 FT232 的VCC引脚; ESP32 GND引脚 连接 FT232 的GND引脚;

#配置

/*apps/js/board_config.json*/
{
	"UART":[
		{
		"id":"uart2",
		"port":2,
		"data_width":3,
		"baud_rate":115200,
		"stop_bits":0,
		"flow_control":0,
		"parity_config":0
		}
	]
}

#代码

/*js*/
print('start uart test.....................');
setInterval(function() {

    var handle=UART.open('uart2'); 
    if(handle>0){ 
        var value = UART.write(handle,'hello\r\n'); 
        UART.close(handle);
    } else {
        console.log('open uart2 fail!');
    }

}, 2000);
print('end uart test........................');

#现象

FT232连接PC端的串口软件,可以进行数据的发送。 �

⚠️ **GitHub.com Fallback** ⚠️