summaryrefslogtreecommitdiffstats
path: root/stm32/app/usart.c
diff options
context:
space:
mode:
Diffstat (limited to 'stm32/app/usart.c')
-rw-r--r--stm32/app/usart.c175
1 files changed, 0 insertions, 175 deletions
diff --git a/stm32/app/usart.c b/stm32/app/usart.c
deleted file mode 100644
index 28676a0..0000000
--- a/stm32/app/usart.c
+++ /dev/null
@@ -1,175 +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
-
-#define USART3_TX GPIO_USART3_TX
-#define USART3_TX_PORT GPIOB
-
-#define USART3_RX GPIO_USART3_RX
-#define USART3_RX_PORT GPIOB
-
-
-
-ring_t rx1_ring;
-static uint8_t rx1_ring_buf[BUFFER_SIZE];
-
-ring_t tx1_ring;
-static uint8_t tx1_ring_buf[BUFFER_SIZE];
-
-ring_t rx3_ring;
-static uint8_t rx3_ring_buf[BUFFER_SIZE];
-
-ring_t tx3_ring;
-static uint8_t tx3_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)) {
- 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_disable_tx_interrupt (USART1);
- } else
- usart_send_blocking (USART1, data);
- }
-
-}
-
-void
-usart1_queue (uint8_t d)
-{
- ring_write_byte (&tx1_ring, d);
- usart_enable_tx_interrupt (USART1);
-}
-
-void
-usart1_drain (void)
-{
- while (!ring_empty (&tx1_ring));
-}
-
-
-int
-usart1_write (char *ptr, int len, int blocking)
-{
- int ret;
-
- ret = ring_write (&tx1_ring, (uint8_t *) ptr, len, blocking);
- usart_enable_tx_interrupt (USART1);
- return ret;
-}
-
-
-void
-usart3_isr (void)
-{
- uint8_t data;
-
- /* Check if we were called because of RXNE. */
- if (((USART_CR1 (USART3) & USART_CR1_RXNEIE) != 0) &&
- ((USART_SR (USART3) & USART_SR_RXNE) != 0)) {
- data = usart_recv (USART3);
- ring_write_byte (&rx3_ring, data);
- }
-
- /* Check if we were called because of TXE. */
- if (((USART_CR1 (USART3) & USART_CR1_TXEIE) != 0) &&
- ((USART_SR (USART3) & USART_SR_TXE) != 0)) {
-
- if (ring_read_byte (&tx3_ring, &data)) {
- /*No more data, Disable the TXE interrupt, it's no longer needed. */
- usart_disable_tx_interrupt (USART3);
- } else
- usart_send_blocking (USART3, data);
- }
-
-}
-
-void
-usart3_queue (uint8_t d)
-{
- ring_write_byte (&tx3_ring, d);
- usart_enable_tx_interrupt (USART3);
-}
-
-void
-usart3_drain (void)
-{
- while (!ring_empty (&tx3_ring));
-}
-
-
-int
-usart3_write (char *ptr, int len, int blocking)
-{
- int ret;
-
- ret = ring_write (&tx3_ring, (uint8_t *) ptr, len, blocking);
- usart_enable_tx_interrupt (USART3);
- return ret;
-}
-
-
-void
-usart_init (void)
-{
- ring_init (&rx1_ring, rx1_ring_buf, sizeof (rx1_ring_buf));
- ring_init (&tx1_ring, tx1_ring_buf, sizeof (tx1_ring_buf));
-
- nvic_enable_irq (NVIC_USART1_IRQ);
-
- MAP_AF (USART1_TX);
- MAP_AF_PU (USART1_RX);
-
-
- usart_set_baudrate (USART1, 57600);
- 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);
-
- USART_CR1 (USART1) |= USART_CR1_RXNEIE;
-
- usart_enable (USART1);
-
-
- ring_init (&rx3_ring, rx3_ring_buf, sizeof (rx3_ring_buf));
- ring_init (&tx3_ring, tx3_ring_buf, sizeof (tx3_ring_buf));
-
-
- nvic_enable_irq (NVIC_USART3_IRQ);
-
- MAP_AF (USART3_TX);
- MAP_AF_PU (USART3_RX);
-
- usart_set_baudrate (USART3, 9600);
- usart_set_databits (USART3, 8);
- usart_set_stopbits (USART3, USART_STOPBITS_1);
- usart_set_parity (USART3, USART_PARITY_NONE);
- usart_set_flow_control (USART3, USART_FLOWCONTROL_NONE);
- usart_set_mode (USART3, USART_MODE_TX_RX);
-
- USART_CR1 (USART3) |= USART_CR1_RXNEIE;
-
- usart_enable (USART3);
-}