uart.h
Go to the documentation of this file.
1 #ifndef UART_H_
2 #define UART_H_
3 
4 //*****************************************************************************
5 //
8 //
9 //*****************************************************************************
10 
11 //*****************************************************************************
12 //
13 // If building with a C++ compiler, make all of the definitions in this header
14 // have a C binding.
15 //
16 //*****************************************************************************
17 #ifdef __cplusplus
18 extern "C"
19 {
20 #endif
21 
22 #include <stdint.h>
23 #include <stdbool.h>
24 
25 #include <msp.h>
26 #include "eusci.h"
27 
28 #define DEFAULT_SYNC 0x00
29 #define EUSCI_A_UART_AUTOMATICBAUDRATE_SYNC 0x55
30 
31 #define EUSCI_A_UART_NO_PARITY 0x00
32 #define EUSCI_A_UART_ODD_PARITY 0x01
33 #define EUSCI_A_UART_EVEN_PARITY 0x02
34 
35 #define EUSCI_A_UART_MSB_FIRST EUSCI_A_CTLW0_MSB
36 #define EUSCI_A_UART_LSB_FIRST 0x00
37 
38 #define EUSCI_A_UART_MODE EUSCI_A_CTLW0_MODE_0
39 #define EUSCI_A_UART_IDLE_LINE_MULTI_PROCESSOR_MODE EUSCI_A_CTLW0_MODE_1
40 #define EUSCI_A_UART_ADDRESS_BIT_MULTI_PROCESSOR_MODE EUSCI_A_CTLW0_MODE_2
41 #define EUSCI_A_UART_AUTOMATIC_BAUDRATE_DETECTION_MODE EUSCI_A_CTLW0_MODE_3
42 
43 #define EUSCI_A_UART_CLOCKSOURCE_SMCLK EUSCI_A_CTLW0_SSEL__SMCLK
44 #define EUSCI_A_UART_CLOCKSOURCE_ACLK EUSCI_A_CTLW0_SSEL__ACLK
45 
46 #define EUSCI_A_UART_ONE_STOP_BIT 0x00
47 #define EUSCI_A_UART_TWO_STOP_BITS EUSCI_A_CTLW0_SPB
48 
49 #define EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION 0x01
50 #define EUSCI_A_UART_LOW_FREQUENCY_BAUDRATE_GENERATION 0x00
51 
52 #define EUSCI_A_UART_RECEIVE_INTERRUPT EUSCI_A_IE_RXIE
53 #define EUSCI_A_UART_TRANSMIT_INTERRUPT EUSCI_A_IE_TXIE
54 #define EUSCI_A_UART_RECEIVE_ERRONEOUSCHAR_INTERRUPT EUSCI_A_CTLW0_RXEIE
55 #define EUSCI_A_UART_BREAKCHAR_INTERRUPT EUSCI_A_CTLW0_BRKIE
56 #define EUSCI_A_UART_STARTBIT_INTERRUPT EUSCI_A_IE_STTIE
57 #define EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT EUSCI_B_IE_STPIE
58 
59 #define EUSCI_A_UART_RECEIVE_INTERRUPT_FLAG EUSCI_A_IFG_RXIFG
60 #define EUSCI_A_UART_TRANSMIT_INTERRUPT_FLAG EUSCI_A_IFG_TXIFG
61 #define EUSCI_A_UART_STARTBIT_INTERRUPT_FLAG EUSCI_A_IFG_STTIFG
62 #define EUSCI_A_UART_TRANSMIT_COMPLETE_INTERRUPT_FLAG EUSCI_A_IFG_TXCPTIFG
63 
64 #define EUSCI_A_UART_LISTEN_ENABLE EUSCI_A_STATW_LISTEN
65 #define EUSCI_A_UART_FRAMING_ERROR EUSCI_A_STATW_FE
66 #define EUSCI_A_UART_OVERRUN_ERROR EUSCI_A_STATW_OE
67 #define EUSCI_A_UART_PARITY_ERROR EUSCI_A_STATW_PE
68 #define EUSCI_A_UART_BREAK_DETECT EUSCI_A_STATW_BRK
69 #define EUSCI_A_UART_RECEIVE_ERROR EUSCI_A_STATW_RXERR
70 #define EUSCI_A_UART_ADDRESS_RECEIVED EUSCI_A_STATW_ADDR_IDLE
71 #define EUSCI_A_UART_IDLELINE EUSCI_A_STATW_ADDR_IDLE
72 #define EUSCI_A_UART_BUSY EUSCI_A_STATW_BUSY
73 
74 #define EUSCI_A_UART_DEGLITCH_TIME_2ns 0x00
75 #define EUSCI_A_UART_DEGLITCH_TIME_50ns 0x0001
76 #define EUSCI_A_UART_DEGLITCH_TIME_100ns 0x0002
77 #define EUSCI_A_UART_DEGLITCH_TIME_200ns (0x0001 + 0x0002)
78 
79 //*****************************************************************************
80 //
89 //
90 //*****************************************************************************
92 {
93  uint_fast8_t selectClockSource;
94  uint_fast16_t clockPrescalar;
95  uint_fast8_t firstModReg;
96  uint_fast8_t secondModReg;
97  uint_fast8_t parity;
98  uint_fast16_t msborLsbFirst;
99  uint_fast16_t numberofStopBits;
100  uint_fast16_t uartMode;
101  uint_fast8_t overSampling;
103 
104 //*****************************************************************************
105 //
174 //
175 //*****************************************************************************
176 extern bool UART_initModule(uint32_t moduleInstance,
177  const eUSCI_UART_Config *config);
178 
179 //*****************************************************************************
180 //
199 //
200 //*****************************************************************************
201 extern void UART_transmitData(uint32_t moduleInstance,
202  uint_fast8_t transmitData);
203 
204 //*****************************************************************************
205 //
224 //
225 //*****************************************************************************
226 extern uint8_t UART_receiveData(uint32_t moduleInstance);
227 
228 //*****************************************************************************
229 //
247 //
248 //*****************************************************************************
249 extern void UART_enableModule(uint32_t moduleInstance);
250 
251 //*****************************************************************************
252 //
270 //
271 //*****************************************************************************
272 extern void UART_disableModule(uint32_t moduleInstance);
273 
274 //*****************************************************************************
275 //
305 //
306 //*****************************************************************************
307 extern uint_fast8_t UART_queryStatusFlags(uint32_t moduleInstance,
308  uint_fast8_t mask);
309 
310 //*****************************************************************************
311 //
332 //
333 //*****************************************************************************
334 extern void UART_setDormant(uint32_t moduleInstance);
335 
336 //*****************************************************************************
337 //
355 //
356 //*****************************************************************************
357 extern void UART_resetDormant(uint32_t moduleInstance);
358 
359 //*****************************************************************************
360 //
378 //
379 //*****************************************************************************
380 extern void UART_transmitAddress(uint32_t moduleInstance,
381  uint_fast8_t transmitAddress);
382 
383 //*****************************************************************************
384 //
405 //
406 //*****************************************************************************
407 extern void UART_transmitBreak(uint32_t moduleInstance);
408 
409 //*****************************************************************************
410 //
427 //
428 //*****************************************************************************
429 extern uint32_t UART_getReceiveBufferAddressForDMA(uint32_t moduleInstance);
430 
431 //*****************************************************************************
432 //
449 //
450 //*****************************************************************************
451 extern uint32_t UART_getTransmitBufferAddressForDMA(uint32_t moduleInstance);
452 
453 //*****************************************************************************
454 //
478 //
479 //*****************************************************************************
480 extern void UART_selectDeglitchTime(uint32_t moduleInstance,
481  uint32_t deglitchTime);
482 
483 //*****************************************************************************
484 //
514 //
515 //*****************************************************************************
516 extern void UART_enableInterrupt(uint32_t moduleInstance, uint_fast8_t mask);
517 
518 //*****************************************************************************
519 //
548 //
549 //*****************************************************************************
550 extern void UART_disableInterrupt(uint32_t moduleInstance, uint_fast8_t mask);
551 
552 //*****************************************************************************
553 //
576 //
577 //*****************************************************************************
578 extern uint_fast8_t UART_getInterruptStatus(uint32_t moduleInstance,
579  uint8_t mask);
580 
581 //*****************************************************************************
582 //
587 
602 //
603 //*****************************************************************************
604 extern uint_fast8_t UART_getEnabledInterruptStatus(uint32_t moduleInstance);
605 
606 //*****************************************************************************
607 //
631 //
632 //*****************************************************************************
633 extern void UART_clearInterruptFlag(uint32_t moduleInstance, uint_fast8_t mask);
634 
635 //*****************************************************************************
636 //
659 //
660 //*****************************************************************************
661 extern void UART_registerInterrupt(uint32_t moduleInstance,
662  void (*intHandler)(void));
663 
664 //*****************************************************************************
665 //
686 //
687 //*****************************************************************************
688 extern void UART_unregisterInterrupt(uint32_t moduleInstance);
689 
690 /* Backwards Compatibility Layer */
691 #define EUSCI_A_UART_transmitData UART_transmitData
692 #define EUSCI_A_UART_receiveData UART_receiveData
693 #define EUSCI_A_UART_enableInterrupt UART_enableInterrupt
694 #define EUSCI_A_UART_disableInterrupt UART_disableInterrupt
695 #define EUSCI_A_UART_getInterruptStatus UART_getInterruptStatus
696 #define EUSCI_A_UART_clearInterruptFlag UART_clearInterruptFlag
697 #define EUSCI_A_UART_enable UART_enableModule
698 #define EUSCI_A_UART_disable UART_disableModule
699 #define EUSCI_A_UART_queryStatusFlags UART_queryStatusFlags
700 #define EUSCI_A_UART_setDormant UART_setDormant
701 #define EUSCI_A_UART_resetDormant UART_resetDormant
702 #define EUSCI_A_UART_transmitAddress UART_transmitAddress
703 #define EUSCI_A_UART_transmitBreak UART_transmitBreak
704 #define EUSCI_A_UART_getReceiveBufferAddressForDMA UART_getReceiveBufferAddressForDMA
705 #define EUSCI_A_UART_getTransmitBufferAddressForDMA UART_getTransmitBufferAddressForDMA
706 #define EUSCI_A_UART_selectDeglitchTime UART_selectDeglitchTime
707 
708 //*****************************************************************************
709 //
710 // Mark the end of the C bindings section for C++ compilers.
711 //
712 //*****************************************************************************
713 #ifdef __cplusplus
714 }
715 #endif
716 
717 //*****************************************************************************
718 //
719 // Close the Doxygen group.
721 //
722 //*****************************************************************************
723 
724 #endif /* UART_H_ */
void UART_resetDormant(uint32_t moduleInstance)
Definition: uart.c:139
uint_fast8_t UART_queryStatusFlags(uint32_t moduleInstance, uint_fast8_t mask)
Definition: uart.c:119
void UART_disableInterrupt(uint32_t moduleInstance, uint_fast8_t mask)
Definition: uart.c:223
void UART_selectDeglitchTime(uint32_t moduleInstance, uint32_t deglitchTime)
Definition: uart.c:183
void UART_transmitData(uint32_t moduleInstance, uint_fast8_t transmitData)
Definition: uart.c:87
bool UART_initModule(uint32_t moduleInstance, const eUSCI_UART_Config *config)
Definition: uart.c:6
uint_fast8_t overSampling
Definition: uart.h:101
void UART_unregisterInterrupt(uint32_t moduleInstance)
Definition: uart.c:333
uint_fast8_t parity
Definition: uart.h:97
uint_fast8_t UART_getInterruptStatus(uint32_t moduleInstance, uint8_t mask)
Definition: uart.c:248
uint_fast16_t uartMode
Definition: uart.h:100
uint_fast8_t secondModReg
Definition: uart.h:96
uint32_t UART_getReceiveBufferAddressForDMA(uint32_t moduleInstance)
Definition: uart.c:173
uint8_t UART_receiveData(uint32_t moduleInstance)
Definition: uart.c:97
uint_fast8_t selectClockSource
Definition: uart.h:93
void UART_enableInterrupt(uint32_t moduleInstance, uint_fast8_t mask)
Definition: uart.c:197
void UART_transmitBreak(uint32_t moduleInstance)
Definition: uart.c:153
void UART_clearInterruptFlag(uint32_t moduleInstance, uint_fast8_t mask)
Definition: uart.c:291
uint_fast16_t msborLsbFirst
Definition: uart.h:98
uint32_t UART_getTransmitBufferAddressForDMA(uint32_t moduleInstance)
Definition: uart.c:178
uint_fast8_t firstModReg
Definition: uart.h:95
void UART_transmitAddress(uint32_t moduleInstance, uint_fast8_t transmitAddress)
Definition: uart.c:144
uint_fast8_t UART_getEnabledInterruptStatus(uint32_t moduleInstance)
Definition: uart.c:260
void UART_setDormant(uint32_t moduleInstance)
Definition: uart.c:134
void UART_enableModule(uint32_t moduleInstance)
Definition: uart.c:107
void UART_registerInterrupt(uint32_t moduleInstance, void(*intHandler)(void))
Definition: uart.c:304
uint_fast16_t numberofStopBits
Definition: uart.h:99
Type definition for _eUSCI_UART_Config structure.
Definition: uart.h:91
uint_fast16_t clockPrescalar
Definition: uart.h:94
struct _eUSCI_eUSCI_UART_Config eUSCI_UART_Config
void UART_disableModule(uint32_t moduleInstance)
Definition: uart.c:113

Copyright 2016, Texas Instruments Incorporated