Merge pull request #2689 from balanceTWK/pr_master

[components][freemodbus] update function : xMBPortSerialInit(); xMBMasterPortSerialInit
This commit is contained in:
Bernard Xiong
2019-05-16 09:16:31 +08:00
committed by GitHub
2 changed files with 29 additions and 31 deletions
+14 -15
View File
@@ -52,6 +52,8 @@ static void serial_soft_trans_irq(void* parameter);
BOOL xMBPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits, BOOL xMBPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits,
eMBParity eParity) eMBParity eParity)
{ {
rt_device_t dev = RT_NULL;
char uart_name[20];
/** /**
* set 485 mode receive and transmit control IO * set 485 mode receive and transmit control IO
* @note MODBUS_SLAVE_RT_CONTROL_PIN_INDEX need be defined by user * @note MODBUS_SLAVE_RT_CONTROL_PIN_INDEX need be defined by user
@@ -60,22 +62,19 @@ BOOL xMBPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits,
rt_pin_mode(MODBUS_SLAVE_RT_CONTROL_PIN_INDEX, PIN_MODE_OUTPUT); rt_pin_mode(MODBUS_SLAVE_RT_CONTROL_PIN_INDEX, PIN_MODE_OUTPUT);
#endif #endif
/* set serial name */ /* set serial name */
if (ucPORT == 1) { rt_snprintf(uart_name,sizeof(uart_name), "uart%d", ucPORT);
#if defined(RT_USING_UART1) || defined(RT_USING_REMAP_UART1)
extern struct rt_serial_device serial1; dev = rt_device_find(uart_name);
serial = &serial1; if(dev == RT_NULL)
#endif {
} else if (ucPORT == 2) { /* can not find uart */
#if defined(RT_USING_UART2) return FALSE;
extern struct rt_serial_device serial2;
serial = &serial2;
#endif
} else if (ucPORT == 3) {
#if defined(RT_USING_UART3)
extern struct rt_serial_device serial3;
serial = &serial3;
#endif
} }
else
{
serial = (struct rt_serial_device*)dev;
}
/* set serial configure parameter */ /* set serial configure parameter */
serial->config.baud_rate = ulBaudRate; serial->config.baud_rate = ulBaudRate;
serial->config.stop_bits = STOP_BITS_1; serial->config.stop_bits = STOP_BITS_1;
+15 -16
View File
@@ -53,6 +53,9 @@ static void serial_soft_trans_irq(void* parameter);
BOOL xMBMasterPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits, BOOL xMBMasterPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits,
eMBParity eParity) eMBParity eParity)
{ {
rt_device_t dev = RT_NULL;
char uart_name[20];
/** /**
* set 485 mode receive and transmit control IO * set 485 mode receive and transmit control IO
* @note MODBUS_MASTER_RT_CONTROL_PIN_INDEX need be defined by user * @note MODBUS_MASTER_RT_CONTROL_PIN_INDEX need be defined by user
@@ -60,24 +63,20 @@ BOOL xMBMasterPortSerialInit(UCHAR ucPORT, ULONG ulBaudRate, UCHAR ucDataBits,
#if defined(RT_MODBUS_MASTER_USE_CONTROL_PIN) #if defined(RT_MODBUS_MASTER_USE_CONTROL_PIN)
rt_pin_mode(MODBUS_MASTER_RT_CONTROL_PIN_INDEX, PIN_MODE_OUTPUT); rt_pin_mode(MODBUS_MASTER_RT_CONTROL_PIN_INDEX, PIN_MODE_OUTPUT);
#endif #endif
/* set serial name */ /* set serial name */
if (ucPORT == 1) { rt_snprintf(uart_name,sizeof(uart_name), "uart%d", ucPORT);
#if defined(RT_USING_UART1) || defined(RT_USING_REMAP_UART1)
extern struct rt_serial_device serial1; dev = rt_device_find(uart_name);
serial = &serial1; if(dev == RT_NULL)
#endif {
} else if (ucPORT == 2) { /* can not find uart */
#if defined(RT_USING_UART2) return FALSE;
extern struct rt_serial_device serial2;
serial = &serial2;
#endif
} else if (ucPORT == 3) {
#if defined(RT_USING_UART3)
extern struct rt_serial_device serial3;
serial = &serial3;
#endif
} }
else
{
serial = (struct rt_serial_device*)dev;
}
/* set serial configure parameter */ /* set serial configure parameter */
serial->config.baud_rate = ulBaudRate; serial->config.baud_rate = ulBaudRate;
serial->config.stop_bits = STOP_BITS_1; serial->config.stop_bits = STOP_BITS_1;