STM32移植FreeModbus串口合适但是485不合适的解决方法

【STM32移植FreeModbus串口合适但是485不合适的解决方法】一原因:
原因是因为485相比串口多了一个发送接收控制。
二解决方法:
将发送/接收控制放到freeModbus中让FreeModbus自己控制发送接收,主要在vMBPortSerialEnable这个函数中修改,具体如下:

void vMBPortSerialEnable( BOOL xRxEnable, BOOL xTxEnable ) { /* If xRXEnable enable serial receive interrupts. If xTxENable enable * transmitter empty interrupts. */ if(xRxEnable == TRUE) { modbus_receive_en(); //开接收中断的时候接收使能 USART_ITConfig(USART2, USART_IT_RXNE, ENABLE); } else { USART_ITConfig(USART2, USART_IT_RXNE, DISABLE); } if(xTxEnable == TRUE) { modbus_send_en(); //开发送中断的时候发送使能 USART_ITConfig(USART2, USART_IT_TC, ENABLE); } else { USART_ITConfig(USART2, USART_IT_TC, DISABLE); } }

    推荐阅读