TX and RX FIFO. RX FIFO was tested. TX FIFO not fully tested.

Dependents:   STM32F030R8_SOMO-14D

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?

UserRevisionLine numberNew 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 */