26
26
27
27
#include "xmc_gpio.h"
28
28
#include "xmc_scu.h"
29
+ #include "xmc_uart.h"
29
30
30
31
#include "bsp/board.h"
31
32
#include "board.h"
@@ -45,17 +46,31 @@ void board_init(void)
45
46
SystemCoreClockUpdate ();
46
47
47
48
// LED
48
- XMC_GPIO_CONFIG_t led_cfg ;
49
+ XMC_GPIO_CONFIG_t led_cfg = { 0 } ;
49
50
led_cfg .mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL ;
50
51
led_cfg .output_level = XMC_GPIO_OUTPUT_LEVEL_HIGH ;
51
52
led_cfg .output_strength = XMC_GPIO_OUTPUT_STRENGTH_MEDIUM ;
52
53
XMC_GPIO_Init (LED_PIN , & led_cfg );
53
54
54
55
// Button
55
- XMC_GPIO_CONFIG_t button_cfg ;
56
+ XMC_GPIO_CONFIG_t button_cfg = { 0 } ;
56
57
button_cfg .mode = XMC_GPIO_MODE_INPUT_TRISTATE ;
57
58
XMC_GPIO_Init (BUTTON_PIN , & button_cfg );
58
59
60
+ #ifdef UART_DEV
61
+ XMC_UART_CH_CONFIG_t uart_cfg = {0 };
62
+ uart_cfg .baudrate = CFG_BOARD_UART_BAUDRATE ;
63
+ uart_cfg .data_bits = 8 ;
64
+ uart_cfg .stop_bits = 1 ;
65
+ XMC_UART_CH_Init (UART_DEV , & uart_cfg );
66
+
67
+ XMC_GPIO_SetMode (UART_RX_PIN , XMC_GPIO_MODE_INPUT_PULL_UP );
68
+ XMC_UART_CH_SetInputSource (UART_DEV , XMC_UART_CH_INPUT_RXD , UART_RX_INPUT );
69
+
70
+ XMC_UART_CH_Start (UART_DEV );
71
+ XMC_GPIO_SetMode (UART_TX_PIN , (XMC_GPIO_MODE_t )(XMC_GPIO_MODE_OUTPUT_PUSH_PULL | UART_TX_PIN_AF ));
72
+ #endif
73
+
59
74
#if CFG_TUSB_OS == OPT_OS_NONE
60
75
// 1ms tick timer
61
76
SysTick_Config (SystemCoreClock / 1000 );
@@ -69,6 +84,7 @@ void board_init(void)
69
84
#endif
70
85
71
86
// USB Power Enable
87
+ XMC_SCU_CLOCK_UngatePeripheralClock (XMC_SCU_PERIPHERAL_CLOCK_USB0 );
72
88
XMC_SCU_RESET_DeassertPeripheralReset (XMC_SCU_PERIPHERAL_RESET_USB0 );
73
89
XMC_SCU_POWER_EnableUsb ();
74
90
}
@@ -93,7 +109,7 @@ int board_uart_read(uint8_t* buf, int len)
93
109
{
94
110
#ifdef UART_DEV
95
111
for (int i = 0 ;i < len ;i ++ ) {
96
- buf [i ] = uart_getc ( uart_inst );
112
+ buf [i ] = XMC_UART_CH_GetReceivedData ( UART_DEV );
97
113
}
98
114
return len ;
99
115
#else
@@ -107,7 +123,7 @@ int board_uart_write(void const * buf, int len)
107
123
#ifdef UART_DEV
108
124
char const * bufch = (char const * ) buf ;
109
125
for (int i = 0 ;i < len ;i ++ ) {
110
- uart_putc ( uart_inst , bufch [i ]);
126
+ XMC_UART_CH_Transmit ( UART_DEV , bufch [i ]);
111
127
}
112
128
return len ;
113
129
#else
0 commit comments