|
|
@@ -253,9 +253,21 @@ static void shark_uart_pin_init(shark_uart_t *uart){
|
|
|
gpio_mode_set(SHARK_UART1_rx_port, GPIO_MODE_AF, GPIO_PUPD_PULLUP, SHARK_UART1_rx_pin);
|
|
|
gpio_output_options_set(SHARK_UART1_rx_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,SHARK_UART1_rx_pin);
|
|
|
}
|
|
|
+}
|
|
|
|
|
|
+static void shark_uart_pin_deinit(shark_uart_t *uart){
|
|
|
+ if (_uart_index(uart->uart_com) == SHARK_UART0) {
|
|
|
+ gpio_mode_set(SHARK_UART0_tx_port, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, SHARK_UART0_tx_pin);
|
|
|
+ gpio_bit_set(SHARK_UART0_tx_port, SHARK_UART0_tx_pin);
|
|
|
+ gpio_mode_set(SHARK_UART0_rx_port, GPIO_MODE_INPUT, GPIO_PUPD_NONE, SHARK_UART0_rx_pin);
|
|
|
+ }else {
|
|
|
+ gpio_mode_set(SHARK_UART1_tx_port, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, SHARK_UART1_tx_pin);
|
|
|
+ gpio_bit_set(SHARK_UART1_tx_port, SHARK_UART1_tx_pin);
|
|
|
+ gpio_mode_set(SHARK_UART1_rx_port, GPIO_MODE_INPUT, GPIO_PUPD_NONE, SHARK_UART1_rx_pin);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
static void shark_uart_device_init(shark_uart_t *uart){
|
|
|
usart_deinit(uart->uart_com);
|
|
|
usart_baudrate_set(uart->uart_com, SHARK_UART_BAUDRATE);
|
|
|
@@ -329,6 +341,7 @@ void shark_uart_deinit(uart_enum_t uart_no){
|
|
|
dma_channel_disable(uart->tx_dma_ch);
|
|
|
rcu_periph_clock_disable(uart_no == SHARK_UART0?SHARK_UART0_tx_dma_clk:SHARK_UART1_tx_dma_clk);
|
|
|
rcu_periph_clock_disable(uart_no == SHARK_UART0?SHARK_UART0_rx_dma_clk:SHARK_UART1_rx_dma_clk);
|
|
|
+ shark_uart_pin_deinit(uart);
|
|
|
}
|
|
|
if (uart_no == SHARK_UART0) {
|
|
|
UART0_IR_EN(0);
|