From e41764fceeabb1cdb6a7a299e00f2166a6f6ac32 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Thu, 18 Jun 2020 13:26:56 +0100 Subject: moved stm32 into directory added noddy pcb --- app/usart.c | 119 ------------------------------------------------------------ 1 file changed, 119 deletions(-) delete mode 100644 app/usart.c (limited to 'app/usart.c') diff --git a/app/usart.c b/app/usart.c deleted file mode 100644 index 8d98287..0000000 --- a/app/usart.c +++ /dev/null @@ -1,119 +0,0 @@ -#include "project.h" - -#define BUFFER_SIZE 256 - - -#define USART1_TX GPIO_USART1_TX -#define USART1_TX_PORT GPIOA -#define USART1_RX GPIO_USART1_RX -#define USART1_RX_PORT GPIOA - - -ring_t rx1_ring; -static uint8_t rx1_ring_buf[BUFFER_SIZE]; - -ring_t tx1_ring; -static uint8_t tx1_ring_buf[BUFFER_SIZE]; - -void -usart1_isr (void) -{ - uint8_t data; - - /* Check if we were called because of RXNE. */ - if (((USART_CR1 (USART1) & USART_CR1_RXNEIE) != 0) && - ((USART_SR (USART1) & USART_SR_RXNE) != 0)) { - - /* Retrieve the data from the peripheral. */ - data = usart_recv (USART1); - - - ring_write_byte (&rx1_ring, data); - } - - /* Check if we were called because of TXE. */ - if (((USART_CR1 (USART1) & USART_CR1_TXEIE) != 0) && - ((USART_SR (USART1) & USART_SR_TXE) != 0)) { - - if (ring_read_byte (&tx1_ring, &data)) { - /*No more data, Disable the TXE interrupt, it's no longer needed. */ - USART_CR1 (USART1) &= ~USART_CR1_TXEIE; - } else - usart_send (USART1, data); - } - -} - - -int -_write (int file, char *ptr, int len) -{ - int ret; - - if (file == 1) { - ret = len; - - usart1_drain(); - - while (len--) { - if (*ptr == '\n') - ring_write_byte (&tx1_ring, '\r'); - - ring_write_byte (&tx1_ring, * (ptr++)); - } - - USART_CR1 (USART1) |= USART_CR1_TXEIE; - return ret; - } - - errno = EIO; - return -1; -} - -void -usart1_queue (uint8_t d) -{ - ring_write_byte (&tx1_ring, d); - USART_CR1 (USART1) |= USART_CR1_TXEIE; -} - - -void -usart1_drain (void) -{ - while (!ring_empty (&tx1_ring)); -} - - - -void -usart_init (void) -{ - rcc_periph_clock_enable (RCC_USART1); - - ring_init (&rx1_ring, rx1_ring_buf, sizeof (rx1_ring_buf)); - ring_init (&tx1_ring, tx1_ring_buf, sizeof (tx1_ring_buf)); - - /* Enable the USART1,2 interrupt. */ - nvic_enable_irq (NVIC_USART1_IRQ); - - /* Map pins, and usart1 to have pull ups */ - MAP_AF_PP (USART1_TX); - MAP_INPUT_PU (USART1_RX); - - - /* Setup UART1 parameters. */ - usart_set_baudrate (USART1, 115200); - usart_set_databits (USART1, 8); - usart_set_stopbits (USART1, USART_STOPBITS_1); - usart_set_parity (USART1, USART_PARITY_NONE); - usart_set_flow_control (USART1, USART_FLOWCONTROL_NONE); - usart_set_mode (USART1, USART_MODE_TX_RX); - - - /* Enable USART1 Receive interrupt. */ - USART_CR1 (USART1) |= USART_CR1_RXNEIE; - - /* Finally enable the USARTs. */ - usart_enable (USART1); -} -- cgit v1.2.3