Forking https://os.mbed.com/users/cam/code/Modbus/ to work for NUCLEO 64 boards
Fork of Cam's original FreeModbus port (https://os.mbed.com/users/cam/code/Modbus/)
Change: - Serial implementation to work for NUCLEO 64 boards and receive interrupts instead of timer. (see `portserial.cpp`)
Added: - Custom RTU mode. Allows for external implementation of packet receiving and sending. Sends and receives packets as whole frames (address + PDU) (i.e. this was added for a custom LoRa implementation). implement `xMBRTUCustGetPDU` and `xMBRTUCustSendResponse` (see `mbport.h`) and call `eMBRTUCustomInit( address )`. implementations need to be fully initialised as `eMBRTUCustomInit` only sets the address and nothing else.
Diff: mbrtu.cpp
- Revision:
- 4:7621103c5a40
- Parent:
- 0:0453a0a7e500
diff -r 4cda95d7b6c5 -r 7621103c5a40 mbrtu.cpp --- a/mbrtu.cpp Mon Jan 06 01:17:26 2020 +0000 +++ b/mbrtu.cpp Tue Aug 04 04:42:52 2020 +0000 @@ -218,6 +218,11 @@ /* Activate the transmitter. */ eSndState = STATE_TX_XMIT; vMBPortSerialEnable( FALSE, TRUE ); + while( !pxMBFrameCBTransmitterEmpty( ) ){ + // hack fix for no TX empty interrupt. + // enable TX empty interrupt on Serial in portserial.cpp + // and remove this. + }; } else {