]> cloudbase.mooo.com Git - irmp.git/commitdiff
libopencm3: Add IRMP_LOGGING libopencm3 irmp-libopencm3-pre-1
authorLeo C <erbl259-lmu@yahoo.de>
Wed, 3 May 2017 13:03:07 +0000 (15:03 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Wed, 3 May 2017 13:03:07 +0000 (15:03 +0200)
irmp.c

diff --git a/irmp.c b/irmp.c
index c37449cd8564a9e93d52083e5c24888fc29876d8..2b9d96580dc9a03ebdef3ce6fca1fb8c971bff00 100644 (file)
--- a/irmp.c
+++ b/irmp.c
@@ -740,6 +740,14 @@ irmp_protocol_names[IRMP_N_PROTOCOLS + 1] PROGMEM =
 #  include "stm32f4xx_usart.h"\r
 #elif defined(ARM_STM32F10X)\r
 #  define  STM32_UART_COM     USART3                                    // UART3 on PB10\r
+#elif defined(LIBOPENCM3)                                               //\r
+#  include <libopencm3/stm32/usart.h>\r
+#  define STM32_UART_COM        USART2                                  // UART2 on PA2\r
+#  define STM32_UART_GPIO_PORT  GPIOA\r
+#  define STM32_UART_GPIO_PIN   GPIO2\r
+#  define STM32_UART_COM_RCC    RCC_USART2\r
+#  define STM32_UART_GPIO_RCC   RCC_GPIOA\r
+#  define STM32_UART_BAUD       115200                                  // 115200 Baud\r
 #elif defined(ARDUINO)                                                  // Arduino Serial implementation\r
 #  if defined(USB_SERIAL)\r
 #    include "usb_serial.h"\r
@@ -877,6 +885,23 @@ irmp_uart_init (void)
     // UART enable\r
     USART_Cmd(STM32_UART_COM, ENABLE);\r
 \r
+#elif defined(LIBOPENCM3)\r
+    rcc_periph_clock_enable(STM32_UART_COM_RCC);\r
+    /* Setup GPIO pin for USART TX */\r
+    rcc_periph_clock_enable(STM32_UART_GPIO_RCC);\r
+    gpio_set_mode(STM32_UART_GPIO_PORT, GPIO_MODE_OUTPUT_2_MHZ,\r
+                GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, STM32_UART_GPIO_PIN);\r
+\r
+    /* Setup UART parameters. */\r
+    usart_set_baudrate(STM32_UART_COM, STM32_UART_BAUD);\r
+    usart_set_databits(STM32_UART_COM, 8);\r
+    usart_set_stopbits(STM32_UART_COM, USART_STOPBITS_1);\r
+    usart_set_parity(STM32_UART_COM, USART_PARITY_NONE);\r
+    usart_set_flow_control(STM32_UART_COM, USART_FLOWCONTROL_NONE);\r
+    usart_set_mode(STM32_UART_COM, USART_MODE_TX_RX);\r
+    /* Finally enable the USART. */\r
+    usart_enable(STM32_UART_COM);\r
+\r
 #elif defined(ARDUINO)\r
     // we use the Arduino Serial Imlementation\r
     // you have to call Serial.begin(SER_BAUD); in Arduino setup() function\r
@@ -939,6 +964,12 @@ irmp_uart_putc (unsigned char ch)
         USART_SendData(STM32_UART_COM, '\r');\r
     }\r
 \r
+#elif defined(LIBOPENCM3)\r
+    if (ch == '\n') {\r
+        usart_send_blocking(STM32_UART_COM, '\r');\r
+    }\r
+    usart_send_blocking(STM32_UART_COM, ch);\r
+\r
 #elif defined(ARDUINO)\r
     // we use the Arduino Serial Imlementation\r
     usb_serial_putchar(ch);\r