BOOTLOADER
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
uart0.h
Go to the documentation of this file.
1 #ifndef UART0_H
2 #define UART0_H
3 
4 #define UART0_BUFFER_EMPTY 0
5 #define UART0_BUFFER_NOT_EMPTY 1
6 #define UART0_BUFFER_FULL 2
7 
8 #define Uart0ReadCmd 0
9 #define Uart0WriteCmd 1
10 #define Uart0Execution 2
11 
12 #define UART0_UTRSTAT0_TX2 0x04 // tx buffer & tx shift register ok
13 #define UART0_UTRSTAT0_TX 0x02 // tx buffer ok
14 #define UART0_UTRSTAT0_RX 0x01 // rx buffer ok
15 
16 #define UART0_UERSTAT0_OVERRUN_ERROR 0x01
17 #define UART0_UERSTAT0_FRAME_ERROR0 0x02
18 #define UART0_UERSTAT0_FRAME_ERROR1 0x04
19 #define UART0_UERSTAT0_FRAME_ERROR2 0x08
20 
21 #define UART0_MAX_BUFFER_SIZE 1000
22 #define UART0_AFC_BUFFER_LENGTH 256
23 typedef struct{
28 typedef struct{
29  volatile INT32U ULCON; // 0 uart line control register
30  volatile INT32U UCON; // 4 uart control register
31  volatile INT32U UFCON; // 8 uart fifo control register
32  volatile INT32U UMCON; // c uart moden control register
33  volatile INT32U UTRSTAT; // 10 uart tx/rx status register
34  volatile INT32U UERSTAT; // 14 uart error register
35  volatile INT32U UFSTAT; // 18 uart fifo status register
36  volatile INT32U UMSTAT; // 1c uart moden status register
37  volatile INT32U UTXH; // 20 uart transmit register
38  volatile INT32U URXH; // 24 uart receive register
39  volatile INT32U UBRDIV; // 28 uart baud rate divider register
41 typedef struct{
47  INT32U PortSelect; // 0,1
51  INT32U HasInput; // TRUE, FALSE
52  INT32U ActionType; // read,write,execute
53  INT32U Item; // 0~0xff
54  INT32U ItemData; // 0~0xff
67 
69 
70 extern void F_Uart0Init(void);
71 extern void F_Uart0Svc(void);
72 extern void F_Uart0BufferReset(void);
73 extern void F_Uart0BaudrateSet(INT32U Baudrate);
74 extern void printf(char *Format,...);
75 extern INT8 getkey(void);
76 extern INT8 getch(void);
77 extern void putch(INT8 Data);
78 extern INT8U F_Uart0InUseCheck(void);
79 extern INT8U F_Uart0Allocate(INT16U UserId);
80 extern INT8U F_Uart0Release(INT16U UserId);
81 extern INT8U F_Uart0UlconSet(INT16U UserId,INT32U Ulcon);
82 extern INT8U F_Uart0UconSet(INT16U UserId,INT32U Ucon);
83 extern INT8U F_Uart0UmconSet(INT16U UserId,INT32U Umcon);
84 extern INT8U F_Uart0UtrstatGet(INT16U UserId,INT32U *pUtrstat);
85 extern INT8U F_Uart0UerstatGet(INT16U UserId,INT32U *pUerstat);
86 extern INT8U F_Uart0UfstatGet(INT16U UserId,INT32U *pUfstat);
87 extern INT8U F_Uart0UmstatGet(INT16U UserId,INT32U *pUmstat);
88 extern INT8U F_Uart0UtxhSet(INT16U UserId,INT32U Utxh);
89 extern INT8U F_Uart0UrxhGet(INT16U UserId,INT32U *pUrxh);
90 extern INT8U F_Uart0UbrdivSet(INT16U UserId,INT32U ULCON);
91 extern INT8U F_Uart0BaudrateConfig(INT16U UserId,INT32U Baudrate);
92 extern INT8U F_Uart0RxBufferCheck(void);
93 extern INT8U F_Uart0TxBufferCheck(void);
94 extern INT8U F_Uart0RxBufferGet(void);
95 extern void F_Uart0TxBufferPut(INT8U);
96 
97 #endif