diff options
| author | tangweikang <[email protected]> | 2019-05-15 15:07:33 +0800 |
|---|---|---|
| committer | tangweikang <[email protected]> | 2019-05-15 17:16:20 +0800 |
| commit | 4f44fa8f60b0aab862d0b8dd46eaa568ac366f22 (patch) | |
| tree | 2d3de7e69485e956897326c1ebfe89345944a17c | |
| parent | 3dd64da78b5ab4785933dc256b6f9c2846599483 (diff) | |
[components][freemodbus] update function : xMBPortSerialInit(...) and xMBMasterPortSerialInit(...) | 更新 xMBPortSerialInit() 与 xMBMasterPortSerialInit() 函数
| -rw-r--r-- | components/net/freemodbus/port/portserial.c | 16 | ||||
| -rw-r--r-- | components/net/freemodbus/port/portserial_m.c | 24 |
2 files changed, 10 insertions, 30 deletions
diff --git a/components/net/freemodbus/port/portserial.c b/components/net/freemodbus/port/portserial.c index 775ce6db28..cbd846d7ff 100644 --- a/components/net/freemodbus/port/portserial.c +++ b/components/net/freemodbus/port/portserial.c @@ -53,6 +53,7 @@ BOOL xMBPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits, eMBParity eParity) { rt_device_t dev = RT_NULL; + char uart_name[20]; /** * set 485 mode receive and transmit control IO * @note MODBUS_SLAVE_RT_CONTROL_PIN_INDEX need be defined by user @@ -61,21 +62,12 @@ BOOL xMBPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits, rt_pin_mode(MODBUS_SLAVE_RT_CONTROL_PIN_INDEX, PIN_MODE_OUTPUT); #endif /* set serial name */ - if (ucPORT == 1) - { - dev = rt_device_find("uart1"); - } - else if (ucPORT == 2) - { - dev = rt_device_find("uart2"); - } - else if (ucPORT == 3) - { - dev = rt_device_find("uart3"); - } + rt_snprintf(uart_name,sizeof(uart_name), "uart%d", ucPORT); + dev = rt_device_find(uart_name); if(dev == RT_NULL) { + /* can not find uart */ return FALSE; } else diff --git a/components/net/freemodbus/port/portserial_m.c b/components/net/freemodbus/port/portserial_m.c index cbe26bd0ae..47a70dd905 100644 --- a/components/net/freemodbus/port/portserial_m.c +++ b/components/net/freemodbus/port/portserial_m.c @@ -54,6 +54,8 @@ BOOL xMBMasterPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits, eMBParity eParity) { rt_device_t dev = RT_NULL; + char uart_name[20]; + /** * set 485 mode receive and transmit control IO * @note MODBUS_MASTER_RT_CONTROL_PIN_INDEX need be defined by user @@ -62,27 +64,19 @@ BOOL xMBMasterPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits, rt_pin_mode(MODBUS_MASTER_RT_CONTROL_PIN_INDEX, PIN_MODE_OUTPUT); #endif /* set serial name */ - if (ucPORT == 1) - { - dev = rt_device_find("uart1"); - } - else if (ucPORT == 2) - { - dev = rt_device_find("uart2"); - } - else if (ucPORT == 3) - { - dev = rt_device_find("uart3"); - } + rt_snprintf(uart_name,sizeof(uart_name), "uart%d", ucPORT); + dev = rt_device_find(uart_name); if(dev == RT_NULL) { + /* can not find uart */ return FALSE; } else { serial = (struct rt_serial_device*)dev; } + /* set serial configure parameter */ serial->config.baud_rate = ulBaudRate; serial->config.stop_bits = STOP_BITS_1; @@ -216,12 +210,6 @@ static void serial_soft_trans_irq(void* parameter) { RT_WAITING_FOREVER, &recved_event); /* execute modbus callback */ prvvUARTTxReadyISR(); - /* waiting for serial transmit start */ - // if (rt_event_recv(&event_serial, EVENT_SERIAL_TRANS_START, RT_EVENT_FLAG_OR,RT_WAITING_FOREVER, &recved_event) == RT_EOK ) - // { - // /* execute modbus callback */ - // prvvUARTTxReadyISR(); - // } } } |
