Jelajahi Sumber

add: luat_uart.h添加485的转换GPIO配置,供底层实现相关功能

from 8910sdk库 by		alienwalker
Wendal Chen 4 tahun lalu
induk
melakukan
4d1fd38bdd
2 mengubah file dengan 9 tambahan dan 0 penghapusan
  1. 3 0
      luat/include/luat_uart.h
  2. 6 0
      luat/modules/luat_lib_uart.c

+ 3 - 0
luat/include/luat_uart.h

@@ -23,6 +23,9 @@ typedef struct luat_uart {
     uint8_t parity;    // 奇偶校验位
     
     size_t bufsz;     // 接收数据缓冲区大小
+	uint32_t pin485;	//转换485的pin, 如果没有则是0xffffffff
+	uint32_t delay;		//延迟时间,单位us
+	uint8_t rx_level;	//接收方向的电平
     //int received;//接收回调
     //int sent;//发送成功回调
 } luat_uart_t;

+ 6 - 0
luat/modules/luat_lib_uart.c

@@ -74,6 +74,9 @@ int l_uart_handler(lua_State *L, void* ptr) {
 @int 校验位, 可选 uart.None/uart.Even/uart.Odd
 @int 大小端, 默认小端 uart.LSB, 可选 uart.MSB
 @int 缓冲区大小, 默认值1024
+@int 485模式下的转换GPIO, 默认值0xffffffff
+@int 485模式下的rx方向GPIO的电平, 默认值0
+@int 485模式下tx向rx转换的延迟时间,默认值12bit的时间,单位us
 @return int 成功返回0,失败返回其他值
 @usage
 -- 最常用115200 8N1
@@ -90,6 +93,9 @@ static int l_uart_setup(lua_State *L)
     uart_config->parity = luaL_optinteger(L, 5, LUAT_PARITY_NONE);
     uart_config->bit_order = luaL_optinteger(L, 6, LUAT_BIT_ORDER_LSB);
     uart_config->bufsz = luaL_optinteger(L, 7, 1024);
+    uart_config->pin485 = luaL_optinteger(L, 8, 0xffffffff);
+    uart_config->rx_level = luaL_optinteger(L, 9, 0);
+    uart_config->delay = luaL_optinteger(L, 10, 12000000/uart_config->baud_rate);
 
     int result = luat_uart_setup(uart_config);
     lua_pushinteger(L, result);