TX and RX FIFO. RX FIFO was tested. TX FIFO not fully tested.
Dependents: STM32F030R8_SOMO-14D
MessageQueue.h@0:35d1a2c4fb6d, 2015-03-13 (annotated)
- Committer:
- issaiass
- Date:
- Fri Mar 13 01:11:54 2015 +0000
- Revision:
- 0:35d1a2c4fb6d
TX and RX bufer.; ; The buffers are not fully tested, just only the receive buffer.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
issaiass | 0:35d1a2c4fb6d | 1 | /* |
issaiass | 0:35d1a2c4fb6d | 2 | ******************************************************************************* |
issaiass | 0:35d1a2c4fb6d | 3 | * CERES CONTROLS |
issaiass | 0:35d1a2c4fb6d | 4 | * PANAMA, REPULIC OF PANAMA |
issaiass | 0:35d1a2c4fb6d | 5 | * |
issaiass | 0:35d1a2c4fb6d | 6 | * File : MessageQueue.h |
issaiass | 0:35d1a2c4fb6d | 7 | * Programmer(s) : Rangel Alvarado |
issaiass | 0:35d1a2c4fb6d | 8 | * Language : ANSI-C |
issaiass | 0:35d1a2c4fb6d | 9 | * Description : File that handles serial communications and buffer. |
issaiass | 0:35d1a2c4fb6d | 10 | * |
issaiass | 0:35d1a2c4fb6d | 11 | * Note : Dependancies of mbed libraries... |
issaiass | 0:35d1a2c4fb6d | 12 | * - Serial |
issaiass | 0:35d1a2c4fb6d | 13 | * |
issaiass | 0:35d1a2c4fb6d | 14 | * |
issaiass | 0:35d1a2c4fb6d | 15 | * ---------------------------------------------------------------------------- |
issaiass | 0:35d1a2c4fb6d | 16 | * HISTORY |
issaiass | 0:35d1a2c4fb6d | 17 | * DD MM AA |
issaiass | 0:35d1a2c4fb6d | 18 | * 09 03 15 Created. |
issaiass | 0:35d1a2c4fb6d | 19 | * 09 03 15 Modified. |
issaiass | 0:35d1a2c4fb6d | 20 | * 12 03 15 Import to mbed platform. |
issaiass | 0:35d1a2c4fb6d | 21 | ******************************************************************************* |
issaiass | 0:35d1a2c4fb6d | 22 | */ |
issaiass | 0:35d1a2c4fb6d | 23 | |
issaiass | 0:35d1a2c4fb6d | 24 | |
issaiass | 0:35d1a2c4fb6d | 25 | /* |
issaiass | 0:35d1a2c4fb6d | 26 | ******************************************************************************* |
issaiass | 0:35d1a2c4fb6d | 27 | * CONSTANTS AND MACROS |
issaiass | 0:35d1a2c4fb6d | 28 | ******************************************************************************* |
issaiass | 0:35d1a2c4fb6d | 29 | */ |
issaiass | 0:35d1a2c4fb6d | 30 | |
issaiass | 0:35d1a2c4fb6d | 31 | #define MSG_RX_MAX_CHAR 16 /* Maximum characters of the RX Buffer */ |
issaiass | 0:35d1a2c4fb6d | 32 | #define MSG_TX_MAX_CHAR 16 /* Maximum characters of the TX Buffer */ |
issaiass | 0:35d1a2c4fb6d | 33 | |
issaiass | 0:35d1a2c4fb6d | 34 | #define MSG_TX_PIN USBTX /* TX PIN Config */ |
issaiass | 0:35d1a2c4fb6d | 35 | #define MSG_RX_PIN USBRX /* RX PIN Config */ |
issaiass | 0:35d1a2c4fb6d | 36 | |
issaiass | 0:35d1a2c4fb6d | 37 | |
issaiass | 0:35d1a2c4fb6d | 38 | /* |
issaiass | 0:35d1a2c4fb6d | 39 | ******************************************************************************* |
issaiass | 0:35d1a2c4fb6d | 40 | * DATA TYPES |
issaiass | 0:35d1a2c4fb6d | 41 | ******************************************************************************* |
issaiass | 0:35d1a2c4fb6d | 42 | */ |
issaiass | 0:35d1a2c4fb6d | 43 | |
issaiass | 0:35d1a2c4fb6d | 44 | typedef struct msgbuf { |
issaiass | 0:35d1a2c4fb6d | 45 | INT8U MsgRxBufCtr; /* Byte Counter, RX Buffer */ |
issaiass | 0:35d1a2c4fb6d | 46 | INT8U MsgRxBufHd; /* Insertion Buffer Counter, RX Buffer */ |
issaiass | 0:35d1a2c4fb6d | 47 | INT8U MsgRxBufTl; /* Extraction Buffer Counter, RX Buffer*/ |
issaiass | 0:35d1a2c4fb6d | 48 | INT8U MsgRxBuf[MSG_RX_MAX_CHAR];/* Buffer size, RX Buffer */ |
issaiass | 0:35d1a2c4fb6d | 49 | INT8U MsgTxBufCtr; /* Byte Counter, TX Buffer */ |
issaiass | 0:35d1a2c4fb6d | 50 | INT8U MsgTxBufHd; /* Insertion Buffer Counter, TX Buffer */ |
issaiass | 0:35d1a2c4fb6d | 51 | INT8U MsgTxBufTl; /* Extraction Buffer Counter, TX Buffer*/ |
issaiass | 0:35d1a2c4fb6d | 52 | INT8U MsgTxBuf[MSG_TX_MAX_CHAR]; /* Buffer size, TX Buffer */ |
issaiass | 0:35d1a2c4fb6d | 53 | } MSG_BUF; /* Name of buffer */ |
issaiass | 0:35d1a2c4fb6d | 54 | |
issaiass | 0:35d1a2c4fb6d | 55 | /* |
issaiass | 0:35d1a2c4fb6d | 56 | ******************************************************************************* |
issaiass | 0:35d1a2c4fb6d | 57 | * FUNCTION PROTOTYPES |
issaiass | 0:35d1a2c4fb6d | 58 | ******************************************************************************* |
issaiass | 0:35d1a2c4fb6d | 59 | */ |
issaiass | 0:35d1a2c4fb6d | 60 | |
issaiass | 0:35d1a2c4fb6d | 61 | void MsgRxISRCfg(void (*msgfunc)(void)); /* Configure Serial RxD Irq */ |
issaiass | 0:35d1a2c4fb6d | 62 | void MsgTxISRCfg(void (*msgfunc)(void)); /* Configure Serial TxD Irq */ |
issaiass | 0:35d1a2c4fb6d | 63 | INT8U MsgChkSum(INT8U *pdata, INT8U size); /* Compute checksum from data */ |
issaiass | 0:35d1a2c4fb6d | 64 | void MsgBufInit(void); /* Buffers Tx and Rx Initialized */ |
issaiass | 0:35d1a2c4fb6d | 65 | INT8U MsgGet(void); /* Gets 1 byte from serial port, RX */ |
issaiass | 0:35d1a2c4fb6d | 66 | INT8U MsgGetChar(void); /* Gets 1 byte from buffer, Rx */ |
issaiass | 0:35d1a2c4fb6d | 67 | void MsgPutRxChar(INT8U data); /* Put 1 byte on the buffer, RX */ |
issaiass | 0:35d1a2c4fb6d | 68 | BOOLEAN MsgRxBufEmpty(void); /* Status of buffer Empty, RX */ |
issaiass | 0:35d1a2c4fb6d | 69 | void MsgGetLine(INT8U *pdata); /* Get a line of the buffer, RX */ |
issaiass | 0:35d1a2c4fb6d | 70 | void MsgRxIntDis(void); /* Disable IRQ, RX */ |
issaiass | 0:35d1a2c4fb6d | 71 | void MsgRxIntEn(void (*pfunc)(void)); /* Enable IRQ, Rx */ |
issaiass | 0:35d1a2c4fb6d | 72 | void MsgRxBufFlush(void); /* Cleans buffer status, Rx */ |
issaiass | 0:35d1a2c4fb6d | 73 | void MsgPut(INT8U data); /* Puts 1 byte in serial, TX */ |
issaiass | 0:35d1a2c4fb6d | 74 | void MsgPutChar(INT8U data); /* Send 1 character to the buffer, TX */ |
issaiass | 0:35d1a2c4fb6d | 75 | void MsgPutLine(INT8U *pdata); /* Send a string from serial, TX */ |
issaiass | 0:35d1a2c4fb6d | 76 | BOOLEAN MsgTxBufFull(void); /* Buffer state full, TX */ |
issaiass | 0:35d1a2c4fb6d | 77 | void MsgTxIntDis(void); /* Disable IRQ, Tx */ |
issaiass | 0:35d1a2c4fb6d | 78 | void MsgTxIntEn(void (*pfunc)(void)); /* Enable IRQ, Tx */ |
issaiass | 0:35d1a2c4fb6d | 79 | INT8U MsgGetTxChar(void); /* Print a character on serial ISR, Tx */ |