X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstm32l0%2Fao_serial_stm.c;h=650f2f1f636c335f80e8c27068948b42c65a1cfc;hb=2733436da522650d4e918b7bc7d65f966f149792;hp=8471004453a5802ad97d65c87a3cc88ad005615f;hpb=d907b0fe40d31995848e5b207009ba230da2e36e;p=fw%2Faltos diff --git a/src/stm32l0/ao_serial_stm.c b/src/stm32l0/ao_serial_stm.c index 84710044..650f2f1f 100644 --- a/src/stm32l0/ao_serial_stm.c +++ b/src/stm32l0/ao_serial_stm.c @@ -15,15 +15,6 @@ #include #include -void -ao_debug_out(char c) -{ - if (c == '\n') - ao_debug_out('\r'); - while (!(stm_usart1.isr & (1 << STM_USART_ISR_TXE))); - stm_usart1.tdr = c; -} - static int _ao_usart_tx_start(struct ao_stm_usart *usart) { @@ -75,7 +66,7 @@ _ao_usart_rx(struct ao_stm_usart *usart, int is_stdin) } #endif } else { - usart->reg->cr1 &= ~(1 << STM_USART_CR1_RXNEIE); + usart->reg->cr1 &= ~(1UL << STM_USART_CR1_RXNEIE); } } } @@ -86,11 +77,11 @@ ao_usart_isr(struct ao_stm_usart *usart, int is_stdin) _ao_usart_rx(usart, is_stdin); if (!_ao_usart_tx_start(usart)) - usart->reg->cr1 &= ~(1<< STM_USART_CR1_TXEIE); + usart->reg->cr1 &= ~(1UL << STM_USART_CR1_TXEIE); if (usart->reg->isr & (1 << STM_USART_ISR_TC)) { usart->tx_running = 0; - usart->reg->cr1 &= ~(1 << STM_USART_CR1_TCIE); + usart->reg->cr1 &= ~(1UL << STM_USART_CR1_TCIE); if (usart->draining) { usart->draining = 0; ao_wakeup(&usart->tx_fifo); @@ -154,6 +145,7 @@ ao_usart_putchar(struct ao_stm_usart *usart, char c) ao_arch_release_interrupts(); } +#if 0 static void ao_usart_drain(struct ao_stm_usart *usart) { @@ -164,8 +156,9 @@ ao_usart_drain(struct ao_stm_usart *usart) } ao_arch_release_interrupts(); } +#endif -static const uint32_t ao_usart_speeds[] = { +const uint32_t ao_usart_speeds[] = { [AO_SERIAL_SPEED_4800] = 4800, [AO_SERIAL_SPEED_9600] = 9600, [AO_SERIAL_SPEED_19200] = 19200, @@ -290,6 +283,7 @@ _ao_serial1_sleep_for(uint16_t timeout) } #endif +#if 0 void ao_serial1_drain(void) { @@ -302,6 +296,7 @@ ao_serial1_set_speed(uint8_t speed) ao_usart_drain(&ao_stm_usart1); ao_usart_set_speed(&ao_stm_usart1, speed); } +#endif #endif /* HAS_SERIAL_1 */ #if HAS_SERIAL_2 @@ -334,7 +329,6 @@ _ao_serial2_sleep_for(uint16_t timeout) { return _ao_usart_sleep_for(&ao_stm_usart2, timeout); } -#endif void ao_serial2_drain(void) @@ -348,6 +342,7 @@ ao_serial2_set_speed(uint8_t speed) ao_usart_drain(&ao_stm_usart2); ao_usart_set_speed(&ao_stm_usart2, speed); } +#endif #if USE_SERIAL_2_FLOW && USE_SERIAL_2_SW_FLOW void @@ -381,16 +376,32 @@ ao_serial_set_sw_rts_cts(struct ao_stm_usart *usart, } #endif +#if 0 void ao_serial_shutdown(void) { +# if SERIAL_2_PA2_PA3 + stm_moder_set(&stm_gpioa, 2, STM_MODER_INPUT); + stm_moder_set(&stm_gpioa, 3, STM_MODER_INPUT); +# elif SERIAL_2_PA9_PA10 + stm_moder_set(&stm_gpioa, 9, STM_MODER_INPUT); + stm_moder_set(&stm_gpioa, 10, STM_MODER_INPUT); +# elif SERIAL_2_PA14_PA15 + stm_moder_set(&stm_gpioa, 14, STM_MODER_INPUT); + stm_moder_set(&stm_gpioa, 15, STM_MODER_INPUT); +# elif SERIAL_2_PB6_PB7 + stm_moder_set(&stm_gpiob, 6, STM_MODER_INPUT); + stm_moder_set(&stm_gpiob, 7, STM_MODER_INPUT); +#endif #if HAS_SERIAL_1 stm_rcc.apb2enr &= ~(1 << STM_RCC_APB2ENR_USART1EN); #endif #if HAS_SERIAL_2 + stm_nvic_set_disable(STM_ISR_USART2_POS); stm_rcc.apb1enr &= ~(1 << STM_RCC_APB1ENR_USART2EN); #endif } +#endif void ao_serial_init(void)