1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00

stm32f1: implement missing UART0 parts

This commit is contained in:
Thomas Eichinger 2014-07-24 20:08:32 +02:00
parent d50f43e9f5
commit b86b78bcb2
2 changed files with 20 additions and 0 deletions

View File

@ -29,6 +29,10 @@
#include "sched.h"
#include "thread.h"
#ifdef MODULE_UART0
#include "board_uart0.h"
#endif
/**
* @brief Each UART device has to store two callbacks.
@ -300,14 +304,26 @@ static inline void irq_handler(uint8_t uartnum, USART_TypeDef *dev)
{
if (dev->SR & USART_SR_RXNE) {
char data = (char)dev->DR;
#ifdef MODULE_UART0
if (uart0_handler_pid) {
uart0_handle_incoming(data);
uart0_notify_thread();
}
#else
config[uartnum].rx_cb(data);
#endif
}
else if (dev->SR & USART_SR_ORE) {
/* ORE is cleared by reading SR and DR sequentially */
dev->DR;
}
else if (dev->SR & USART_SR_TXE) {
#ifdef MODULE_UART0
dev->SR &= ~(USART_SR_TXE);
#else
config[uartnum].tx_cb();
#endif
}
if (sched_context_switch_request) {

View File

@ -45,7 +45,11 @@ caddr_t heap_top = (caddr_t)&_end + 4;
*/
void _init(void)
{
#ifdef MODULE_UART0
uart_init(UART_0, 115200, NULL, NULL);
#else
uart_init_blocking(UART_0, 115200);
#endif
}
/**