Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
310-TMC3-TestHW/RS485.h@0:c92ca0229c9a, 2014-05-09 (annotated)
- Committer:
- knuderich
- Date:
- Fri May 09 11:30:55 2014 +0000
- Revision:
- 0:c92ca0229c9a
P029 P030 gpio
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
knuderich | 0:c92ca0229c9a | 1 | #include "mbed.h" |
knuderich | 0:c92ca0229c9a | 2 | |
knuderich | 0:c92ca0229c9a | 3 | |
knuderich | 0:c92ca0229c9a | 4 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 5 | // Definitions |
knuderich | 0:c92ca0229c9a | 6 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 7 | #define RS485_BUFFER_LENGTH 512 |
knuderich | 0:c92ca0229c9a | 8 | #define RS485_RX_TIMEOUT_US 300 |
knuderich | 0:c92ca0229c9a | 9 | #define RS485_TX_TIMEOUT_US 300 |
knuderich | 0:c92ca0229c9a | 10 | #define RS485_BAUDRATE 38400 // Same as Display |
knuderich | 0:c92ca0229c9a | 11 | #define RS485_BITS 8 |
knuderich | 0:c92ca0229c9a | 12 | #define RS485_STOPBIT 1 |
knuderich | 0:c92ca0229c9a | 13 | |
knuderich | 0:c92ca0229c9a | 14 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 15 | // Enums |
knuderich | 0:c92ca0229c9a | 16 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 17 | typedef enum |
knuderich | 0:c92ca0229c9a | 18 | { |
knuderich | 0:c92ca0229c9a | 19 | RS485_MODE_LISTEN, |
knuderich | 0:c92ca0229c9a | 20 | RS485_MODE_RX_READY, |
knuderich | 0:c92ca0229c9a | 21 | //----------------- |
knuderich | 0:c92ca0229c9a | 22 | CNT_eRS485_mode |
knuderich | 0:c92ca0229c9a | 23 | }eRS485_mode; |
knuderich | 0:c92ca0229c9a | 24 | |
knuderich | 0:c92ca0229c9a | 25 | |
knuderich | 0:c92ca0229c9a | 26 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 27 | // Structures |
knuderich | 0:c92ca0229c9a | 28 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 29 | typedef struct |
knuderich | 0:c92ca0229c9a | 30 | { |
knuderich | 0:c92ca0229c9a | 31 | eRS485_mode mode; // mode of RS485 hardware |
knuderich | 0:c92ca0229c9a | 32 | char *ptrRXBuffer; // actual read position in buffer |
knuderich | 0:c92ca0229c9a | 33 | char bytesToRead; // Number of received bytes |
knuderich | 0:c92ca0229c9a | 34 | }sRS485_handler; |
knuderich | 0:c92ca0229c9a | 35 | |
knuderich | 0:c92ca0229c9a | 36 | |
knuderich | 0:c92ca0229c9a | 37 | |
knuderich | 0:c92ca0229c9a | 38 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 39 | // Global Variables |
knuderich | 0:c92ca0229c9a | 40 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 41 | extern sRS485_handler RS485_handler; |
knuderich | 0:c92ca0229c9a | 42 | extern char RS485Buffer[RS485_BUFFER_LENGTH]; |
knuderich | 0:c92ca0229c9a | 43 | |
knuderich | 0:c92ca0229c9a | 44 | |
knuderich | 0:c92ca0229c9a | 45 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 46 | // Global Functions |
knuderich | 0:c92ca0229c9a | 47 | //--------------------------------------- |
knuderich | 0:c92ca0229c9a | 48 | void RS485_init( void ); |
knuderich | 0:c92ca0229c9a | 49 | void RS485_reset( void ); // clear all RS485 registers, --> restart |
knuderich | 0:c92ca0229c9a | 50 | int RS485_receiveData( char *& ptrData, int *ptrNumBytes ); |
knuderich | 0:c92ca0229c9a | 51 | int RS485_sendData( char *ptrDataToSend, int NumBytes ); |
knuderich | 0:c92ca0229c9a | 52 | int RS485_sendDataWithCRC( char *ptrDataToSend, int NumBytes ); |