mFrame
載入中...
搜尋中...
無符合項目
CoreUSART.h
1
7#ifndef CORE_378F6EFE_29EB_4294_A630_C64F5EF9F0DD
8#define CORE_378F6EFE_29EB_4294_A630_C64F5EF9F0DD
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15#include "hal.h"
16#include "mframe.h"
17//----------------------------------------------------------------------------------------
18
19/* ***************************************************************************************
20 * Namespace
21 */
22namespace core {
23 class CoreUSART;
24}
25
26/* ***************************************************************************************
27 * Class/Interface/Struct/Enum
28 */
30 public hal::serial::UART,
34 /* *************************************************************************************
35 * Enum
36 */
37 public:
38 enum struct Select : unsigned char {
39 USART0 = 0,
40 USART1 = 1,
41 USART2 = 2
42 };
43
44 /* *************************************************************************************
45 * Variable
46 */
47 public:
48 void* const vBase;
49
50 private:
51 uint32 vBaudrate;
52 hal::serial::UARTEventReceiver* vUARTEventReceiver;
53 hal::serial::UARTEventTransfer* vUARTEventTransfer;
54
55 /* *************************************************************************************
56 * Abstract Method
57 */
58
59 /* *************************************************************************************
60 * Construct Method
61 */
62 public:
67 CoreUSART(Select select);
68
73 virtual ~CoreUSART(void) override;
74
75 /* *************************************************************************************
76 * Operator Method
77 */
78
79 /* *************************************************************************************
80 * Public Method <Override> - hal::Base
81 */
82 public:
83 virtual bool deinit(void) override;
84
85 virtual bool init(void) override;
86
87 virtual bool isInit(void) override;
88 /* *************************************************************************************
89 * Public Method <Override> - hal::Uart
90 */
91 public:
92 virtual uint32 setBaudrate(uint32 baudrate) override;
93
94 virtual uint32 getBaudrate(void) override;
95
96 virtual void beginTransfer(bool enable) override;
97
98 virtual void beginReceiver(bool enable) override;
99
101
103
104 /* *************************************************************************************
105 * Public Method <Override> - hal::InterruptEvent
106 */
107 public:
108 virtual void interruptEvent(void) override;
109
110 /* *************************************************************************************
111 * Public Method <Override> - hal::serial::UARTEvent
112 */
113 public:
114 virtual bool onReceiver(const uint8 data) override;
115
116 virtual bool onTransfer(uint8& data) override;
117
118 /* *************************************************************************************
119 * Public Method
120 */
121
122 /* *************************************************************************************
123 * Protected Method
124 */
125
126 /* *************************************************************************************
127 * Private Method
128 */
129
130 /* *************************************************************************************
131 * Static Variable
132 */
133
134 /* *************************************************************************************
135 * Static Method
136 */
137};
138
139/* ***************************************************************************************
140 * End of file
141 */
142
143#endif /* CORE_378F6EFE_29EB_4294_A630_C64F5EF9F0DD */
Definition CoreUSART.h:33
virtual void beginReceiver(bool enable) override
設定UART開始或關閉接收緩衝器滿事件監聽,當有新資料接收成功後將會呼叫Event::onUartReceiver
virtual bool deinit(void) override
硬體去初始化。
CoreUSART(Select select)
Construct a new object.
virtual bool onTransfer(uint8 &data) override
傳輸緩衝空事件。
virtual bool onReceiver(const uint8 data) override
接收緩衝滿事件。
virtual uint32 setBaudrate(uint32 baudrate) override
設定UART Baudrate,返回值為設定後的數值。 隨核心頻率不同,可能只能產生相近的Baudrate
virtual bool init(void) override
硬體初始化。
virtual uint32 getBaudrate(void) override
取得UART Baudrate
virtual void setEventReceiver(hal::serial::UARTEventReceiver *event) override
設定UART事件物件,當參數為nullptr時取消監聽與事件。
virtual ~CoreUSART(void) override
Destroy the object.
virtual void setEventTransfer(hal::serial::UARTEventTransfer *event) override
設定UART事件物件,當參數為nullptr時取消監聽與事件。
virtual bool isInit(void) override
取得硬體是否已初始化。
virtual void beginTransfer(bool enable) override
設定UART開始或關閉輸出緩衝器空事件監聽,當輸出緩存為空時將會呼叫Event::onUartTransfer
virtual void interruptEvent(void) override
硬體中斷觸發事件
Definition Object.h:34
Definition glikey/Mask.h:22
[Interface]硬體抽象層,硬體中斷觸發事件。
Definition InterruptEvent.h:35
Definition UARTEventReceiver.h:29
[Interface]同步非同步收發器接收事件。
Definition UARTEventTransfer.h:34
[Interface]硬體抽象層,同步非同步收發器。
Definition UART.h:36