]> cloudbase.mooo.com Git - irmp.git/commitdiff
Version 2.6.6: added logging for ARM STM32F10X
authorukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Thu, 18 Sep 2014 09:20:46 +0000 (09:20 +0000)
committerukw <ukw@aeb2e35e-bfc4-4214-b83c-9e8de998ed28>
Thu, 18 Sep 2014 09:20:46 +0000 (09:20 +0000)
git-svn-id: svn://mikrocontroller.net/irmp@148 aeb2e35e-bfc4-4214-b83c-9e8de998ed28

README.txt
irmp.c

index 9874c0d4c815f54b5bbcd57598cf80deb601b930..a7f38b430d04f403d6125ca5049bce8809a45f73 100644 (file)
@@ -1,7 +1,7 @@
 IRMP - Infrared Multi Protocol Decoder\r
 --------------------------------------\r
 \r
-Version IRMP:  2.6.5 17.09.2014\r
+Version IRMP:  2.6.6 18.09.2014\r
 Version IRSND: 2.6.4 15.09.2014\r
 \r
 Dokumentation:\r
diff --git a/irmp.c b/irmp.c
index 018bb7fad36c2ad2af2738b0203102f67acdae8b..d4d038fd2c78e54515f64c2eaf8d7fdcdb471b57 100644 (file)
--- a/irmp.c
+++ b/irmp.c
@@ -3,7 +3,7 @@
  *\r
  * Copyright (c) 2009-2014 Frank Meyer - frank(at)fli4l.de\r
  *\r
- * $Id: irmp.c,v 1.164 2014/09/15 12:36:28 fm Exp $\r
+ * $Id: irmp.c,v 1.165 2014/09/18 09:18:45 fm Exp $\r
  *\r
  * Supported AVR mikrocontrollers:\r
  *\r
@@ -596,22 +596,25 @@ irmp_protocol_names[IRMP_N_PROTOCOLS + 1] PROGMEM =
  *  Logging\r
  *---------------------------------------------------------------------------------------------------------------------------------------------------\r
  */\r
-#if IRMP_LOGGING == 1                                               // logging via UART\r
+#if IRMP_LOGGING == 1                                                   // logging via UART\r
 \r
 #if defined(ARM_STM32F4XX)\r
-#  define  STM32_GPIO_CLOCK   RCC_AHB1Periph_GPIOA                    // per UART2 an PA2\r
+#  define  STM32_GPIO_CLOCK   RCC_AHB1Periph_GPIOA                      // UART2 on PA2\r
 #  define  STM32_UART_CLOCK   RCC_APB1Periph_USART2\r
 #  define  STM32_GPIO_PORT    GPIOA\r
 #  define  STM32_GPIO_PIN     GPIO_Pin_2\r
 #  define  STM32_GPIO_SOURCE  GPIO_PinSource2\r
 #  define  STM32_UART_AF      GPIO_AF_USART2\r
 #  define  STM32_UART_COM     USART2\r
-#  define  STM32_UART_BAUD    115200                                  // mit 115200 Baud\r
+#  define  STM32_UART_BAUD    115200                                    // 115200 Baud\r
 #  include "stm32f4xx_usart.h"\r
+#elif defined(ARM_STM32F10X)\r
+#  define  STM32_UART_COM     USART3                                    // UART3 on PB10\r
+#  include "stm32f10x_usart.h"\r
 #else\r
-#  if IRMP_EXT_LOGGING == 1                                           // use external logging\r
+#  if IRMP_EXT_LOGGING == 1                                             // use external logging\r
 #    include "irmpextlog.h"\r
-#  else                                                               // normal UART log (IRMP_EXT_LOGGING == 0)\r
+#  else                                                                 // normal UART log (IRMP_EXT_LOGGING == 0)\r
 #    define BAUD                                    9600L\r
 #  ifndef UNIX_OR_WINDOWS\r
 #    include <util/setbaud.h>\r
@@ -706,7 +709,39 @@ irmp_uart_init (void)
     // UART enable\r
     USART_Cmd(STM32_UART_COM, ENABLE);\r
 \r
-#else\r
+#elif defined(ARM_STM32F10X)\r
+    GPIO_InitTypeDef GPIO_InitStructure;\r
+    USART_InitTypeDef USART_InitStructure;\r
+\r
+    // Clock enable vom TX Pin\r
+    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // UART3 an PB10\r
+\r
+    // Clock enable der UART\r
+    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);\r
+\r
+    // UART als Alternative-Funktion mit PushPull\r
+    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;\r
+    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;\r
+\r
+    // TX-Pin\r
+    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;\r
+    GPIO_Init(GPIOB, &GPIO_InitStructure);\r
+\r
+    // Oversampling\r
+    USART_OverSampling8Cmd(STM32_UART_COM, ENABLE);\r
+\r
+    // init mit Baudrate, 8Databits, 1Stopbit, keine Parität, kein RTS+CTS\r
+    USART_InitStructure.USART_BaudRate = 115200;\r
+    USART_InitStructure.USART_WordLength = USART_WordLength_8b;\r
+    USART_InitStructure.USART_StopBits = USART_StopBits_1;\r
+    USART_InitStructure.USART_Parity = USART_Parity_No;\r
+    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;\r
+    USART_InitStructure.USART_Mode = USART_Mode_Tx;\r
+    USART_Init(STM32_UART_COM, &USART_InitStructure);\r
+\r
+    // UART enable\r
+    USART_Cmd(STM32_UART_COM, ENABLE);#else\r
+\r
 #if (IRMP_EXT_LOGGING == 0)                                                                         // use UART\r
     UART0_UBRRH = UBRRH_VALUE;                                                                      // set baud rate\r
     UART0_UBRRL = UBRRL_VALUE;\r
@@ -736,7 +771,7 @@ void
 irmp_uart_putc (unsigned char ch)\r
 {\r
 #ifndef UNIX_OR_WINDOWS\r
-#if defined(ARM_STM32F4XX)\r
+#if defined(ARM_STM32F4XX) || defined(ARM_STM32F10X)\r
     // warten bis altes Byte gesendet wurde\r
     while (USART_GetFlagStatus(STM32_UART_COM, USART_FLAG_TXE) == RESET)\r
     {\r