3#include "ch32_uart.hpp"
5extern "C" void CH32_UART_ISR_Handler_TX_CPLT(ch32_uart_id_t
id);
7extern "C" void DMA1_Channel4_IRQHandler(
void) __attribute__((interrupt));
8extern "C" void DMA1_Channel7_IRQHandler(
void) __attribute__((interrupt));
9extern "C" void DMA1_Channel2_IRQHandler(
void) __attribute__((interrupt));
10extern "C" void DMA2_Channel5_IRQHandler(
void) __attribute__((interrupt));
11extern "C" void DMA2_Channel4_IRQHandler(
void) __attribute__((interrupt));
12extern "C" void DMA2_Channel6_IRQHandler(
void) __attribute__((interrupt));
13extern "C" void DMA2_Channel8_IRQHandler(
void) __attribute__((interrupt));
14extern "C" void DMA2_Channel10_IRQHandler(
void) __attribute__((interrupt));
16extern "C" void DMA1_Channel4_IRQHandler(
void)
18 LibXR::CH32UART::DmaIRQHandler(DMA1_Channel4, ch32_uart_id_t::CH32_USART1);
21extern "C" void DMA1_Channel7_IRQHandler(
void)
23 LibXR::CH32UART::DmaIRQHandler(DMA1_Channel7, ch32_uart_id_t::CH32_USART2);
26extern "C" void DMA1_Channel2_IRQHandler(
void)
28 LibXR::CH32UART::DmaIRQHandler(DMA1_Channel2, ch32_uart_id_t::CH32_USART3);
31extern "C" void DMA2_Channel5_IRQHandler(
void)
33 LibXR::CH32UART::DmaIRQHandler(DMA2_Channel5, ch32_uart_id_t::CH32_UART4);
36extern "C" void DMA2_Channel4_IRQHandler(
void)
38 LibXR::CH32UART::DmaIRQHandler(DMA2_Channel4, ch32_uart_id_t::CH32_UART5);
41extern "C" void DMA2_Channel6_IRQHandler(
void)
43 LibXR::CH32UART::DmaIRQHandler(DMA2_Channel6, ch32_uart_id_t::CH32_UART6);
46extern "C" void DMA2_Channel8_IRQHandler(
void)
48 LibXR::CH32UART::DmaIRQHandler(DMA2_Channel8, ch32_uart_id_t::CH32_UART7);
51extern "C" void DMA2_Channel10_IRQHandler(
void)
53 LibXR::CH32UART::DmaIRQHandler(DMA2_Channel10, ch32_uart_id_t::CH32_UART8);
56ch32_dma_channel_t CH32_DMA_GetID(DMA_Channel_TypeDef *channel)
58#if defined(DMA1_Channel1)
59 if (channel == DMA1_Channel1)
61 return CH32_DMA1_CHANNEL1;
65#if defined(DMA1_Channel2)
66 if (channel == DMA1_Channel2)
68 return CH32_DMA1_CHANNEL2;
72#if defined(DMA1_Channel3)
73 if (channel == DMA1_Channel3)
75 return CH32_DMA1_CHANNEL3;
79#if defined(DMA1_Channel4)
80 if (channel == DMA1_Channel4)
82 return CH32_DMA1_CHANNEL4;
86#if defined(DMA1_Channel5)
87 if (channel == DMA1_Channel5)
89 return CH32_DMA1_CHANNEL5;
93#if defined(DMA1_Channel6)
94 if (channel == DMA1_Channel6)
96 return CH32_DMA1_CHANNEL6;
100#if defined(DMA1_Channel7)
101 if (channel == DMA1_Channel7)
103 return CH32_DMA1_CHANNEL7;
107#if defined(DMA2_Channel1)
108 if (channel == DMA2_Channel1)
110 return CH32_DMA2_CHANNEL1;
114#if defined(DMA2_Channel2)
115 if (channel == DMA2_Channel2)
117 return CH32_DMA2_CHANNEL2;
121#if defined(DMA2_Channel3)
122 if (channel == DMA2_Channel3)
124 return CH32_DMA2_CHANNEL3;
128#if defined(DMA2_Channel4)
129 if (channel == DMA2_Channel4)
131 return CH32_DMA2_CHANNEL4;
135#if defined(DMA2_Channel5)
136 if (channel == DMA2_Channel5)
138 return CH32_DMA2_CHANNEL5;
142#if defined(DMA2_Channel6)
143 if (channel == DMA2_Channel6)
145 return CH32_DMA2_CHANNEL6;
149#if defined(DMA2_Channel7)
150 if (channel == DMA2_Channel7)
152 return CH32_DMA2_CHANNEL7;
156#if defined(DMA2_Channel8)
157 if (channel == DMA2_Channel8)
159 return CH32_DMA2_CHANNEL8;
163#if defined(DMA2_Channel9)
164 if (channel == DMA2_Channel9)
166 return CH32_DMA2_CHANNEL9;
170#if defined(DMA2_Channel10)
171 if (channel == DMA2_Channel10)
173 return CH32_DMA2_CHANNEL10;
177#if defined(DMA2_Channel11)
178 if (channel == DMA2_Channel11)
180 return CH32_DMA2_CHANNEL11;
184 return CH32_DMA_CHANNEL_NONE;
187DMA_Channel_TypeDef *CH32_DMA_GetChannel(ch32_dma_channel_t
id)
189#if defined(DMA1_Channel1)
190 if (
id == CH32_DMA1_CHANNEL1)
192 return DMA1_Channel1;
196#if defined(DMA1_Channel2)
197 if (
id == CH32_DMA1_CHANNEL2)
199 return DMA1_Channel2;
203#if defined(DMA1_Channel3)
204 if (
id == CH32_DMA1_CHANNEL3)
206 return DMA1_Channel3;
210#if defined(DMA1_Channel4)
211 if (
id == CH32_DMA1_CHANNEL4)
213 return DMA1_Channel4;
217#if defined(DMA1_Channel5)
218 if (
id == CH32_DMA1_CHANNEL5)
220 return DMA1_Channel5;
224#if defined(DMA1_Channel6)
225 if (
id == CH32_DMA1_CHANNEL6)
227 return DMA1_Channel6;
231#if defined(DMA1_Channel7)
232 if (
id == CH32_DMA1_CHANNEL7)
234 return DMA1_Channel7;
238#if defined(DMA2_Channel1)
239 if (
id == CH32_DMA2_CHANNEL1)
241 return DMA2_Channel1;
245#if defined(DMA2_Channel2)
246 if (
id == CH32_DMA2_CHANNEL2)
248 return DMA2_Channel2;
252#if defined(DMA2_Channel3)
253 if (
id == CH32_DMA2_CHANNEL3)
255 return DMA2_Channel3;
259#if defined(DMA2_Channel4)
260 if (
id == CH32_DMA2_CHANNEL4)
262 return DMA2_Channel4;
266#if defined(DMA2_Channel5)
267 if (
id == CH32_DMA2_CHANNEL5)
269 return DMA2_Channel5;
273#if defined(DMA2_Channel6)
274 if (
id == CH32_DMA2_CHANNEL6)
276 return DMA2_Channel6;
280#if defined(DMA2_Channel7)
281 if (
id == CH32_DMA2_CHANNEL7)
283 return DMA2_Channel7;
287#if defined(DMA2_Channel8)
288 if (
id == CH32_DMA2_CHANNEL8)
290 return DMA2_Channel8;
294#if defined(DMA2_Channel9)
295 if (
id == CH32_DMA2_CHANNEL9)
297 return DMA2_Channel9;
301#if defined(DMA2_Channel10)
302 if (
id == CH32_DMA2_CHANNEL10)
304 return DMA2_Channel10;
308#if defined(DMA2_Channel11)
309 if (
id == CH32_DMA2_CHANNEL11)
311 return DMA2_Channel11;