mbed library sources
Dependents: frdm_kl05z_gpio_test
Fork of mbed-src by
Diff: targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/serial_api.c
- Revision:
- 125:23cc3068a9e4
- Parent:
- 115:4f0cb9cdc478
- Child:
- 172:2f4f8c56b261
diff -r 73383cc04afd -r 23cc3068a9e4 targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/serial_api.c --- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/serial_api.c Tue Mar 18 13:30:07 2014 +0000 +++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/serial_api.c Wed Mar 19 10:15:22 2014 +0000 @@ -35,16 +35,20 @@ #include "stm32f4xx_hal.h" static const PinMap PinMap_UART_TX[] = { + {PA_2, UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, {PA_9, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, - {PA_2, UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, - {PC_6, UART_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, + {PA_11, UART_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, + {PB_6, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, + {PC_6, UART_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NC, 0} }; static const PinMap PinMap_UART_RX[] = { + {PA_3, UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, {PA_10, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, - {PA_3, UART_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART2)}, - {PC_7, UART_3, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, + {PA_12, UART_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, + {PB_7, UART_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF7_USART1)}, + {PC_7, UART_6, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART6)}, {NC, NC, 0} }; @@ -91,10 +95,10 @@ if (obj->uart == UART_2) { __USART2_CLK_ENABLE(); } - if (obj->uart == UART_3) { - __USART6_CLK_ENABLE(); + if (obj->uart == UART_6) { + __USART6_CLK_ENABLE(); } - + // Configure the UART pins pinmap_pinout(tx, PinMap_UART_TX); pinmap_pinout(rx, PinMap_UART_RX); @@ -112,7 +116,7 @@ // The index is used by irq if (obj->uart == UART_1) obj->index = 0; if (obj->uart == UART_2) obj->index = 1; - if (obj->uart == UART_3) obj->index = 2; + if (obj->uart == UART_6) obj->index = 2; // For stdio management if (obj->uart == STDIO_UART) { @@ -186,7 +190,7 @@ // Not part of mbed api static void uart1_irq(void) {uart_irq(UART_1, 0);} static void uart2_irq(void) {uart_irq(UART_2, 1);} -static void uart3_irq(void) {uart_irq(UART_3, 2);} +static void uart6_irq(void) {uart_irq(UART_6, 2);} void serial_irq_handler(serial_t *obj, uart_irq_handler handler, uint32_t id) { irq_handler = handler; @@ -208,12 +212,12 @@ irq_n = USART2_IRQn; vector = (uint32_t)&uart2_irq; } + + if (obj->uart == UART_6) { + irq_n = USART6_IRQn; + vector = (uint32_t)&uart6_irq; + } - if (obj->uart == UART_3) { - irq_n = USART6_IRQn; - vector = (uint32_t)&uart3_irq; - } - if (enable) { if (irq == RxIrq) {