No more "pin-pair"

RX and TX can be assigned to ANY capable pins.
This commit is contained in:
jflyper 2017-05-26 12:52:28 +09:00
parent 6c5997ef9f
commit 2d45189fe2
13 changed files with 130 additions and 1605 deletions

View File

@ -682,6 +682,7 @@ COMMON_SRC = \
drivers/serial.c \ drivers/serial.c \
drivers/serial_pinconfig.c \ drivers/serial_pinconfig.c \
drivers/serial_uart.c \ drivers/serial_uart.c \
drivers/serial_uart_pinconfig.c \
drivers/sound_beeper.c \ drivers/sound_beeper.c \
drivers/stack_check.c \ drivers/stack_check.c \
drivers/system.c \ drivers/system.c \
@ -897,6 +898,7 @@ SIZE_OPTIMISED_SRC := $(SIZE_OPTIMISED_SRC) \
config/config_streamer.c \ config/config_streamer.c \
drivers/serial_pinconfig.c \ drivers/serial_pinconfig.c \
drivers/serial_uart_init.c \ drivers/serial_uart_init.c \
drivers/serial_uart_pinconfig.c \
io/serial_4way.c \ io/serial_4way.c \
io/serial_4way_avrootloader.c \ io/serial_4way_avrootloader.c \
io/serial_4way_stk500v2.c \ io/serial_4way_stk500v2.c \
@ -1013,8 +1015,10 @@ SITLEXCLUDES = \
drivers/light_led.c \ drivers/light_led.c \
drivers/system.c \ drivers/system.c \
drivers/rcc.c \ drivers/rcc.c \
drivers/serial_uart.c \
drivers/serial_pinconfig.c \ drivers/serial_pinconfig.c \
drivers/serial_uart.c \
drivers/serial_uart_init.c \
drivers/serial_uart_pinconfig.c \
drivers/rx_xn297.c \ drivers/rx_xn297.c \
drivers/display_ug2864hsweg01.c \ drivers/display_ug2864hsweg01.c \
telemetry/crsf.c \ telemetry/crsf.c \

File diff suppressed because it is too large Load Diff

View File

@ -40,33 +40,6 @@
#include "drivers/serial_uart.h" #include "drivers/serial_uart.h"
#include "drivers/serial_uart_impl.h" #include "drivers/serial_uart_impl.h"
uartDevice_t uartDevice[UARTDEV_COUNT]; // Only configured in target.h
uartDevice_t *uartDevmap[UARTDEV_COUNT_MAX]; // Full array
void uartPinConfigure(const serialPinConfig_t *pSerialPinConfig)
{
uartDevice_t *uartdev = uartDevice;
for (size_t hindex = 0 ; hindex < UARTDEV_COUNT ; hindex++) {
const uartHardware_t *hardware = &uartHardware[hindex];
UARTDevice device = hardware->device;
for (int pair = 0 ; pair < UARTHARDWARE_PINPAIR_COUNT ; pair++) {
if (hardware->pinPair[pair].rx == pSerialPinConfig->ioTagRx[device]
&& hardware->pinPair[pair].tx == pSerialPinConfig->ioTagTx[device]) {
// Matching pin pair found
uartdev->hardware = hardware;
uartdev->rx = hardware->pinPair[pair].rx;
uartdev->tx = hardware->pinPair[pair].tx;
uartDevmap[device] = uartdev++;
break;
}
}
}
}
static void usartConfigurePinInversion(uartPort_t *uartPort) { static void usartConfigurePinInversion(uartPort_t *uartPort) {
bool inverted = uartPort->port.options & SERIAL_INVERTED; bool inverted = uartPort->port.options & SERIAL_INVERTED;

View File

@ -21,7 +21,7 @@
#if defined(STM32F1) #if defined(STM32F1)
#define UARTDEV_COUNT_MAX 3 #define UARTDEV_COUNT_MAX 3
#define UARTHARDWARE_PINPAIR_COUNT 3 #define UARTHARDWARE_MAX_PINS 3
#ifndef UART_RX_BUFFER_SIZE #ifndef UART_RX_BUFFER_SIZE
#define UART_RX_BUFFER_SIZE 256 #define UART_RX_BUFFER_SIZE 256
#endif #endif
@ -30,7 +30,7 @@
#endif #endif
#elif defined(STM32F3) #elif defined(STM32F3)
#define UARTDEV_COUNT_MAX 5 #define UARTDEV_COUNT_MAX 5
#define UARTHARDWARE_PINPAIR_COUNT 4 #define UARTHARDWARE_MAX_PINS 4
#ifndef UART_RX_BUFFER_SIZE #ifndef UART_RX_BUFFER_SIZE
#define UART_RX_BUFFER_SIZE 256 #define UART_RX_BUFFER_SIZE 256
#endif #endif
@ -39,7 +39,7 @@
#endif #endif
#elif defined(STM32F4) #elif defined(STM32F4)
#define UARTDEV_COUNT_MAX 6 #define UARTDEV_COUNT_MAX 6
#define UARTHARDWARE_PINPAIR_COUNT 4 #define UARTHARDWARE_MAX_PINS 4
#ifndef UART_RX_BUFFER_SIZE #ifndef UART_RX_BUFFER_SIZE
#define UART_RX_BUFFER_SIZE 512 #define UART_RX_BUFFER_SIZE 512
#endif #endif
@ -48,7 +48,7 @@
#endif #endif
#elif defined(STM32F7) #elif defined(STM32F7)
#define UARTDEV_COUNT_MAX 8 #define UARTDEV_COUNT_MAX 8
#define UARTHARDWARE_PINPAIR_COUNT 3 #define UARTHARDWARE_MAX_PINS 3
#ifndef UART_RX_BUFFER_SIZE #ifndef UART_RX_BUFFER_SIZE
#define UART_RX_BUFFER_SIZE 512 #define UART_RX_BUFFER_SIZE 512
#endif #endif
@ -111,11 +111,6 @@
#define UARTDEV_COUNT (UARTDEV_COUNT_1 + UARTDEV_COUNT_2 + UARTDEV_COUNT_3 + UARTDEV_COUNT_4 + UARTDEV_COUNT_5 + UARTDEV_COUNT_6 + UARTDEV_COUNT_7 + UARTDEV_COUNT_8) #define UARTDEV_COUNT (UARTDEV_COUNT_1 + UARTDEV_COUNT_2 + UARTDEV_COUNT_3 + UARTDEV_COUNT_4 + UARTDEV_COUNT_5 + UARTDEV_COUNT_6 + UARTDEV_COUNT_7 + UARTDEV_COUNT_8)
typedef struct uartPinPair_s {
ioTag_t rx;
ioTag_t tx;
} uartPinPair_t;
typedef struct uartHardware_s { typedef struct uartHardware_s {
UARTDevice device; // XXX Not required for full allocation UARTDevice device; // XXX Not required for full allocation
USART_TypeDef* reg; USART_TypeDef* reg;
@ -127,7 +122,8 @@ typedef struct uartHardware_s {
DMA_Stream_TypeDef *txDMAStream; DMA_Stream_TypeDef *txDMAStream;
DMA_Stream_TypeDef *rxDMAStream; DMA_Stream_TypeDef *rxDMAStream;
#endif #endif
uartPinPair_t pinPair[UARTHARDWARE_PINPAIR_COUNT]; ioTag_t rxPins[UARTHARDWARE_MAX_PINS];
ioTag_t txPins[UARTHARDWARE_MAX_PINS];
#if defined(STM32F7) #if defined(STM32F7)
uint32_t rcc_ahb1; uint32_t rcc_ahb1;
rccPeriphTag_t rcc_apb2; rccPeriphTag_t rcc_apb2;

View File

@ -42,33 +42,6 @@
#include "drivers/serial_uart.h" #include "drivers/serial_uart.h"
#include "drivers/serial_uart_impl.h" #include "drivers/serial_uart_impl.h"
uartDevice_t uartDevice[UARTDEV_COUNT]; // Only those configured in target.h
uartDevice_t *uartDevmap[UARTDEV_COUNT_MAX]; // Full array
void uartPinConfigure(const serialPinConfig_t *pSerialPinConfig)
{
uartDevice_t *uartdev = uartDevice;
for (size_t hindex = 0; hindex < UARTDEV_COUNT_MAX; hindex++) {
const uartHardware_t *hardware = &uartHardware[hindex];
UARTDevice device = hardware->device;
for (int pair = 0 ; pair < UARTHARDWARE_PINPAIR_COUNT ; pair++) {
if (hardware->pinPair[pair].rx == pSerialPinConfig->ioTagRx[device]
&& hardware->pinPair[pair].tx == pSerialPinConfig->ioTagTx[device]) {
// Matching pin pair found
uartdev->hardware = hardware;
uartdev->rx = hardware->pinPair[pair].rx;
uartdev->tx = hardware->pinPair[pair].tx;
uartDevmap[device] = uartdev++;
break;
}
}
}
}
static void usartConfigurePinInversion(uartPort_t *uartPort) { static void usartConfigurePinInversion(uartPort_t *uartPort) {
#if !defined(USE_INVERTER) && !defined(STM32F303xC) #if !defined(USE_INVERTER) && !defined(STM32F303xC)
UNUSED(uartPort); UNUSED(uartPort);

View File

@ -0,0 +1,64 @@
/*
* This file is part of Cleanflight.
*
* Cleanflight is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Cleanflight is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
*/
/*
* UART pin configuration common to all MCUs.
*/
/*
* Authors:
* jflyper - Created as a part of configurable UART/refactoring.
*/
#include <stdbool.h>
#include <stdint.h>
#include "platform.h"
#include "build/build_config.h"
#include "drivers/rcc.h"
#include "drivers/serial.h"
#include "drivers/serial_uart.h"
#include "drivers/serial_uart_impl.h"
uartDevice_t uartDevice[UARTDEV_COUNT]; // Only those configured in target.h
uartDevice_t *uartDevmap[UARTDEV_COUNT_MAX]; // Full array
void uartPinConfigure(const serialPinConfig_t *pSerialPinConfig)
{
uartDevice_t *uartdev = uartDevice;
for (size_t hindex = 0; hindex < UARTDEV_COUNT_MAX; hindex++) {
const uartHardware_t *hardware = &uartHardware[hindex];
UARTDevice device = hardware->device;
for (int pindex = 0 ; pindex < UARTHARDWARE_MAX_PINS ; pindex++) {
if (hardware->rxPins[pindex] && (hardware->rxPins[pindex] == pSerialPinConfig->ioTagRx[device]))
uartdev->rx = pSerialPinConfig->ioTagRx[device];
if (hardware->txPins[pindex] && (hardware->txPins[pindex] == pSerialPinConfig->ioTagTx[device]))
uartdev->tx = pSerialPinConfig->ioTagTx[device];
}
if (uartdev->rx || uartdev->tx) {
uartdev->hardware = hardware;
uartDevmap[device] = uartdev++;
}
}
}

View File

@ -64,10 +64,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.reg = USART1, .reg = USART1,
.rxDMAChannel = UART1_RX_DMA_CHANNEL, .rxDMAChannel = UART1_RX_DMA_CHANNEL,
.txDMAChannel = UART1_TX_DMA_CHANNEL, .txDMAChannel = UART1_TX_DMA_CHANNEL,
.pinPair = { .rxPins = { DEFIO_TAG_E(PA10), DEFIO_TAG_E(PB7), IO_TAG_NONE },
{ DEFIO_TAG_E(PA10), DEFIO_TAG_E(PA9) }, .txPins = { DEFIO_TAG_E(PA9), DEFIO_TAG_E(PB6), IO_TAG_NONE },
{ DEFIO_TAG_E(PB7), DEFIO_TAG_E(PB6) },
},
//.af = GPIO_AF_USART1, //.af = GPIO_AF_USART1,
.rcc = RCC_APB2(USART1), .rcc = RCC_APB2(USART1),
.irqn = USART1_IRQn, .irqn = USART1_IRQn,
@ -81,10 +79,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.reg = USART2, .reg = USART2,
.rxDMAChannel = UART2_RX_DMA_CHANNEL, .rxDMAChannel = UART2_RX_DMA_CHANNEL,
.txDMAChannel = UART2_TX_DMA_CHANNEL, .txDMAChannel = UART2_TX_DMA_CHANNEL,
.pinPair = { .rxPins = { DEFIO_TAG_E(PA3), DEFIO_TAG_E(PD6), IO_TAG_NONE },
{ DEFIO_TAG_E(PA3), DEFIO_TAG_E(PA2) }, .txPins = { DEFIO_TAG_E(PA2), DEFIO_TAG_E(PD5), IO_TAG_NONE },
{ DEFIO_TAG_E(PD6), DEFIO_TAG_E(PD5) },
},
//.af = GPIO_AF_USART2, //.af = GPIO_AF_USART2,
.rcc = RCC_APB1(USART2), .rcc = RCC_APB1(USART2),
.irqn = USART2_IRQn, .irqn = USART2_IRQn,
@ -98,11 +94,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.reg = USART3, .reg = USART3,
.rxDMAChannel = UART3_RX_DMA_CHANNEL, .rxDMAChannel = UART3_RX_DMA_CHANNEL,
.txDMAChannel = UART3_TX_DMA_CHANNEL, .txDMAChannel = UART3_TX_DMA_CHANNEL,
.pinPair = { .rxPins = { DEFIO_TAG_E(PB11), DEFIO_TAG_E(PD9), DEFIO_TAG_E(PC11) },
{ DEFIO_TAG_E(PB11), DEFIO_TAG_E(PB10) }, .txPins = { DEFIO_TAG_E(PB10), DEFIO_TAG_E(PD8), DEFIO_TAG_E(PC10) },
{ DEFIO_TAG_E(PD9), DEFIO_TAG_E(PD8) },
{ DEFIO_TAG_E(PC11), DEFIO_TAG_E(PC10) },
},
//.af = GPIO_AF_USART3, //.af = GPIO_AF_USART3,
.rcc = RCC_APB1(USART3), .rcc = RCC_APB1(USART3),
.irqn = USART3_IRQn, .irqn = USART3_IRQn,

View File

@ -87,12 +87,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.reg = USART1, .reg = USART1,
.rxDMAChannel = UART1_RX_DMA, .rxDMAChannel = UART1_RX_DMA,
.txDMAChannel = UART1_TX_DMA, .txDMAChannel = UART1_TX_DMA,
.pinPair = { .rxPins = { DEFIO_TAG_E(PA10), DEFIO_TAG_E(PB7), DEFIO_TAG_E(PC5), DEFIO_TAG_E(PE1) },
{ DEFIO_TAG_E(PA10), DEFIO_TAG_E(PA9) }, .txPins = { DEFIO_TAG_E(PA9), DEFIO_TAG_E(PB6), DEFIO_TAG_E(PC4), DEFIO_TAG_E(PE0) },
{ DEFIO_TAG_E(PB7), DEFIO_TAG_E(PB6) },
{ DEFIO_TAG_E(PC5), DEFIO_TAG_E(PC4) },
{ DEFIO_TAG_E(PE1), DEFIO_TAG_E(PE0) },
},
.rcc = RCC_APB2(USART1), .rcc = RCC_APB2(USART1),
.af = GPIO_AF_7, .af = GPIO_AF_7,
.irqn = USART1_IRQn, .irqn = USART1_IRQn,
@ -107,12 +103,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.reg = USART2, .reg = USART2,
.rxDMAChannel = UART2_RX_DMA, .rxDMAChannel = UART2_RX_DMA,
.txDMAChannel = UART2_TX_DMA, .txDMAChannel = UART2_TX_DMA,
.pinPair = { .rxPins = { DEFIO_TAG_E(PA15), DEFIO_TAG_E(PA3), DEFIO_TAG_E(PB4), DEFIO_TAG_E(PD6) },
{ DEFIO_TAG_E(PA15), DEFIO_TAG_E(PA14) }, .txPins = { DEFIO_TAG_E(PA14), DEFIO_TAG_E(PA2), DEFIO_TAG_E(PB3), DEFIO_TAG_E(PD5) },
{ DEFIO_TAG_E(PA3), DEFIO_TAG_E(PA2) },
{ DEFIO_TAG_E(PB4), DEFIO_TAG_E(PB3) },
{ DEFIO_TAG_E(PD6), DEFIO_TAG_E(PD5) },
},
.rcc = RCC_APB1(USART2), .rcc = RCC_APB1(USART2),
.af = GPIO_AF_7, .af = GPIO_AF_7,
.irqn = USART2_IRQn, .irqn = USART2_IRQn,
@ -127,11 +119,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.reg = USART3, .reg = USART3,
.rxDMAChannel = UART3_RX_DMA, .rxDMAChannel = UART3_RX_DMA,
.txDMAChannel = UART3_TX_DMA, .txDMAChannel = UART3_TX_DMA,
.pinPair = { .rxPins = { DEFIO_TAG_E(PB11), DEFIO_TAG_E(PC11), DEFIO_TAG_E(PD9), IO_TAG_NONE },
{ DEFIO_TAG_E(PB11), DEFIO_TAG_E(PB10) }, .txPins = { DEFIO_TAG_E(PB10), DEFIO_TAG_E(PC10), DEFIO_TAG_E(PD8), IO_TAG_NONE },
{ DEFIO_TAG_E(PC11), DEFIO_TAG_E(PC10) },
{ DEFIO_TAG_E(PD9), DEFIO_TAG_E(PD8) },
},
.rcc = RCC_APB1(USART3), .rcc = RCC_APB1(USART3),
.af = GPIO_AF_7, .af = GPIO_AF_7,
.irqn = USART3_IRQn, .irqn = USART3_IRQn,
@ -147,9 +136,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.reg = UART4, .reg = UART4,
.rxDMAChannel = 0, // XXX UART4_RX_DMA !? .rxDMAChannel = 0, // XXX UART4_RX_DMA !?
.txDMAChannel = 0, // XXX UART4_TX_DMA !? .txDMAChannel = 0, // XXX UART4_TX_DMA !?
.pinPair = { .rxPins = { DEFIO_TAG_E(PC11), IO_TAG_NONE, IO_TAG_NONE, IO_TAG_NONE },
{ DEFIO_TAG_E(PC11), DEFIO_TAG_E(PC10) }, .txPins = { DEFIO_TAG_E(PC10), IO_TAG_NONE, IO_TAG_NONE, IO_TAG_NONE },
},
.rcc = RCC_APB1(UART4), .rcc = RCC_APB1(UART4),
.af = GPIO_AF_5, .af = GPIO_AF_5,
.irqn = UART4_IRQn, .irqn = UART4_IRQn,
@ -165,9 +153,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.reg = UART5, .reg = UART5,
.rxDMAChannel = 0, .rxDMAChannel = 0,
.txDMAChannel = 0, .txDMAChannel = 0,
.pinPair = { .rxPins = { DEFIO_TAG_E(PD2), IO_TAG_NONE, IO_TAG_NONE, IO_TAG_NONE },
{ DEFIO_TAG_E(PD2), DEFIO_TAG_E(PC12) }, .txPins = { DEFIO_TAG_E(PC12), IO_TAG_NONE, IO_TAG_NONE, IO_TAG_NONE },
},
.rcc = RCC_APB1(UART5), .rcc = RCC_APB1(UART5),
.af = GPIO_AF_5, .af = GPIO_AF_5,
.irqn = UART5_IRQn, .irqn = UART5_IRQn,

View File

@ -48,10 +48,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
#ifdef USE_UART1_TX_DMA #ifdef USE_UART1_TX_DMA
.txDMAStream = DMA2_Stream7, .txDMAStream = DMA2_Stream7,
#endif #endif
.pinPair = { .rxPins = { DEFIO_TAG_E(PA10), DEFIO_TAG_E(PB7), IO_TAG_NONE },
{ DEFIO_TAG_E(PA10), DEFIO_TAG_E(PA9) }, .txPins = { DEFIO_TAG_E(PA9), DEFIO_TAG_E(PB6), IO_TAG_NONE },
{ DEFIO_TAG_E(PB7), DEFIO_TAG_E(PB6) },
},
.af = GPIO_AF_USART1, .af = GPIO_AF_USART1,
.rcc = RCC_APB2(USART1), .rcc = RCC_APB2(USART1),
.irqn = USART1_IRQn, .irqn = USART1_IRQn,
@ -71,10 +69,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
#ifdef USE_UART2_TX_DMA #ifdef USE_UART2_TX_DMA
.txDMAStream = DMA1_Stream6, .txDMAStream = DMA1_Stream6,
#endif #endif
.pinPair = { .rxPins = { DEFIO_TAG_E(PA3), DEFIO_TAG_E(PD6), IO_TAG_NONE },
{ DEFIO_TAG_E(PA3), DEFIO_TAG_E(PA2) }, .txPins = { DEFIO_TAG_E(PA2), DEFIO_TAG_E(PD5), IO_TAG_NONE },
{ DEFIO_TAG_E(PD6), DEFIO_TAG_E(PD5) },
},
.af = GPIO_AF_USART2, .af = GPIO_AF_USART2,
.rcc = RCC_APB1(USART2), .rcc = RCC_APB1(USART2),
.irqn = USART2_IRQn, .irqn = USART2_IRQn,
@ -94,11 +90,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
#ifdef USE_UART3_TX_DMA #ifdef USE_UART3_TX_DMA
.txDMAStream = DMA1_Stream3, .txDMAStream = DMA1_Stream3,
#endif #endif
.pinPair = { .rxPins = { DEFIO_TAG_E(PB11), DEFIO_TAG_E(PC11), DEFIO_TAG_E(PD9) },
{ DEFIO_TAG_E(PB11), DEFIO_TAG_E(PB10) }, .txPins = { DEFIO_TAG_E(PB10), DEFIO_TAG_E(PC10), DEFIO_TAG_E(PD8) },
{ DEFIO_TAG_E(PC11), DEFIO_TAG_E(PC10) },
{ DEFIO_TAG_E(PD9), DEFIO_TAG_E(PD8) }
},
.af = GPIO_AF_USART3, .af = GPIO_AF_USART3,
.rcc = RCC_APB1(USART3), .rcc = RCC_APB1(USART3),
.irqn = USART3_IRQn, .irqn = USART3_IRQn,
@ -118,10 +111,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
#ifdef USE_UART4_TX_DMA #ifdef USE_UART4_TX_DMA
.txDMAStream = DMA1_Stream4, .txDMAStream = DMA1_Stream4,
#endif #endif
.pinPair = { .rxPins = { DEFIO_TAG_E(PA1), DEFIO_TAG_E(PC11), IO_TAG_NONE },
{ DEFIO_TAG_E(PA1), DEFIO_TAG_E(PA0) }, .txPins = { DEFIO_TAG_E(PA0), DEFIO_TAG_E(PC10), IO_TAG_NONE },
{ DEFIO_TAG_E(PC11), DEFIO_TAG_E(PC10) },
},
.af = GPIO_AF_UART4, .af = GPIO_AF_UART4,
.rcc = RCC_APB1(UART4), .rcc = RCC_APB1(UART4),
.irqn = UART4_IRQn, .irqn = UART4_IRQn,
@ -141,9 +132,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
#ifdef USE_UART5_TX_DMA #ifdef USE_UART5_TX_DMA
.txDMAStream = DMA1_Stream7, .txDMAStream = DMA1_Stream7,
#endif #endif
.pinPair = { .rxPins = { DEFIO_TAG_E(PD2), IO_TAG_NONE, IO_TAG_NONE },
{ DEFIO_TAG_E(PD2), DEFIO_TAG_E(PC12) }, .txPins = { DEFIO_TAG_E(PC12), IO_TAG_NONE, IO_TAG_NONE },
},
.af = GPIO_AF_UART5, .af = GPIO_AF_UART5,
.rcc = RCC_APB1(UART5), .rcc = RCC_APB1(UART5),
.irqn = UART5_IRQn, .irqn = UART5_IRQn,
@ -163,10 +153,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
#ifdef USE_UART6_TX_DMA #ifdef USE_UART6_TX_DMA
.txDMAStream = DMA2_Stream6, .txDMAStream = DMA2_Stream6,
#endif #endif
.pinPair = { .rxPins = { DEFIO_TAG_E(PC7), DEFIO_TAG_E(PG9), IO_TAG_NONE },
{ DEFIO_TAG_E(PC7), DEFIO_TAG_E(PC6) }, .txPins = { DEFIO_TAG_E(PC6), DEFIO_TAG_E(PG14), IO_TAG_NONE },
{ DEFIO_TAG_E(PG9), DEFIO_TAG_E(PG14) },
},
.af = GPIO_AF_USART6, .af = GPIO_AF_USART6,
.rcc = RCC_APB2(USART6), .rcc = RCC_APB2(USART6),
.irqn = USART6_IRQn, .irqn = USART6_IRQn,

View File

@ -48,10 +48,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.rxDMAStream = DMA2_Stream5, .rxDMAStream = DMA2_Stream5,
#endif #endif
.txDMAStream = DMA2_Stream7, .txDMAStream = DMA2_Stream7,
.pinPair = { .rxPins = { DEFIO_TAG_E(PA10), DEFIO_TAG_E(PB7), IO_TAG_NONE },
{ DEFIO_TAG_E(PA10), DEFIO_TAG_E(PA9) }, .txPins = { DEFIO_TAG_E(PA9), DEFIO_TAG_E(PB6), IO_TAG_NONE },
{ DEFIO_TAG_E(PB7), DEFIO_TAG_E(PB6) },
},
.af = GPIO_AF7_USART1, .af = GPIO_AF7_USART1,
#ifdef UART1_AHB1_PERIPHERALS #ifdef UART1_AHB1_PERIPHERALS
.rcc_ahb1 = UART1_AHB1_PERIPHERALS, .rcc_ahb1 = UART1_AHB1_PERIPHERALS,
@ -73,10 +71,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.rxDMAStream = DMA1_Stream5, .rxDMAStream = DMA1_Stream5,
#endif #endif
.txDMAStream = DMA1_Stream6, .txDMAStream = DMA1_Stream6,
.pinPair = { .rxPins = { DEFIO_TAG_E(PA3), DEFIO_TAG_E(PD6), IO_TAG_NONE },
{ DEFIO_TAG_E(PA3), DEFIO_TAG_E(PA2) }, .txPins = { DEFIO_TAG_E(PA2), DEFIO_TAG_E(PD5), IO_TAG_NONE },
{ DEFIO_TAG_E(PD6), DEFIO_TAG_E(PD5) },
},
.af = GPIO_AF7_USART2, .af = GPIO_AF7_USART2,
#ifdef UART2_AHB1_PERIPHERALS #ifdef UART2_AHB1_PERIPHERALS
.rcc_ahb1 = UART2_AHB1_PERIPHERALS, .rcc_ahb1 = UART2_AHB1_PERIPHERALS,
@ -98,11 +94,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.rxDMAStream = DMA1_Stream1, .rxDMAStream = DMA1_Stream1,
#endif #endif
.txDMAStream = DMA1_Stream3, .txDMAStream = DMA1_Stream3,
.pinPair = { .rxPins = { DEFIO_TAG_E(PB11), DEFIO_TAG_E(PC11), DEFIO_TAG_E(PD9) },
{ DEFIO_TAG_E(PB11), DEFIO_TAG_E(PB10) }, .txPins = { DEFIO_TAG_E(PB10), DEFIO_TAG_E(PC10), DEFIO_TAG_E(PD8) },
{ DEFIO_TAG_E(PC11), DEFIO_TAG_E(PC10) },
{ DEFIO_TAG_E(PD9), DEFIO_TAG_E(PD8) },
},
.af = GPIO_AF7_USART3, .af = GPIO_AF7_USART3,
#ifdef UART3_AHB1_PERIPHERALS #ifdef UART3_AHB1_PERIPHERALS
.rcc_ahb1 = UART3_AHB1_PERIPHERALS, .rcc_ahb1 = UART3_AHB1_PERIPHERALS,
@ -124,10 +117,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.rxDMAStream = DMA1_Stream2, .rxDMAStream = DMA1_Stream2,
#endif #endif
.txDMAStream = DMA1_Stream4, .txDMAStream = DMA1_Stream4,
.pinPair = { .rxPins = { DEFIO_TAG_E(PA1), DEFIO_TAG_E(PC11), IO_TAG_NONE },
{ DEFIO_TAG_E(PA1), DEFIO_TAG_E(PA0) }, .txPins = { DEFIO_TAG_E(PA0), DEFIO_TAG_E(PC10), IO_TAG_NONE },
{ DEFIO_TAG_E(PC11), DEFIO_TAG_E(PC10) },
},
.af = GPIO_AF8_UART4, .af = GPIO_AF8_UART4,
#ifdef UART4_AHB1_PERIPHERALS #ifdef UART4_AHB1_PERIPHERALS
.rcc_ahb1 = UART4_AHB1_PERIPHERALS, .rcc_ahb1 = UART4_AHB1_PERIPHERALS,
@ -149,9 +140,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.rxDMAStream = DMA1_Stream0, .rxDMAStream = DMA1_Stream0,
#endif #endif
.txDMAStream = DMA1_Stream7, .txDMAStream = DMA1_Stream7,
.pinPair = { .rxPins = { DEFIO_TAG_E(PD2), IO_TAG_NONE, IO_TAG_NONE },
{ DEFIO_TAG_E(PD2), DEFIO_TAG_E(PC12) }, .txPins = { DEFIO_TAG_E(PC12), IO_TAG_NONE, IO_TAG_NONE },
},
.af = GPIO_AF8_UART5, .af = GPIO_AF8_UART5,
#ifdef UART5_AHB1_PERIPHERALS #ifdef UART5_AHB1_PERIPHERALS
.rcc_ahb1 = UART5_AHB1_PERIPHERALS, .rcc_ahb1 = UART5_AHB1_PERIPHERALS,
@ -173,10 +163,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.rxDMAStream = DMA2_Stream1, .rxDMAStream = DMA2_Stream1,
#endif #endif
.txDMAStream = DMA2_Stream6, .txDMAStream = DMA2_Stream6,
.pinPair = { .rxPins = { DEFIO_TAG_E(PC7), DEFIO_TAG_E(PG9), IO_TAG_NONE },
{ DEFIO_TAG_E(PC7), DEFIO_TAG_E(PC6) }, .txPins = { DEFIO_TAG_E(PC6), DEFIO_TAG_E(PG14), IO_TAG_NONE },
{ DEFIO_TAG_E(PG9), DEFIO_TAG_E(PG14) },
},
.af = GPIO_AF8_USART6, .af = GPIO_AF8_USART6,
#ifdef UART6_AHB1_PERIPHERALS #ifdef UART6_AHB1_PERIPHERALS
.rcc_ahb1 = UART6_AHB1_PERIPHERALS, .rcc_ahb1 = UART6_AHB1_PERIPHERALS,
@ -198,10 +186,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.rxDMAStream = DMA1_Stream3, .rxDMAStream = DMA1_Stream3,
#endif #endif
.txDMAStream = DMA1_Stream1, .txDMAStream = DMA1_Stream1,
.pinPair = { .rxPins = { DEFIO_TAG_E(PE7), DEFIO_TAG_E(PF6), IO_TAG_NONE },
{ DEFIO_TAG_E(PE7), DEFIO_TAG_E(PE8) }, .txPins = { DEFIO_TAG_E(PE8), DEFIO_TAG_E(PF7), IO_TAG_NONE },
{ DEFIO_TAG_E(PF6), DEFIO_TAG_E(PF7) },
},
.af = GPIO_AF8_UART7, .af = GPIO_AF8_UART7,
#ifdef UART7_AHB1_PERIPHERALS #ifdef UART7_AHB1_PERIPHERALS
.rcc_ahb1 = UART7_AHB1_PERIPHERALS, .rcc_ahb1 = UART7_AHB1_PERIPHERALS,
@ -223,9 +209,8 @@ const uartHardware_t uartHardware[UARTDEV_COUNT] = {
.rxDMAStream = DMA1_Stream6, .rxDMAStream = DMA1_Stream6,
#endif #endif
.txDMAStream = DMA1_Stream0, .txDMAStream = DMA1_Stream0,
.pinPair = { .rxPins = { DEFIO_TAG_E(PE0), IO_TAG_NONE, IO_TAG_NONE },
{ DEFIO_TAG_E(PE0), DEFIO_TAG_E(PE1) }, .txPins = { DEFIO_TAG_E(PE1), IO_TAG_NONE, IO_TAG_NONE },
},
.af = GPIO_AF8_UART8, .af = GPIO_AF8_UART8,
#ifdef UART8_AHB1_PERIPHERALS #ifdef UART8_AHB1_PERIPHERALS
.rcc_ahb1 = UART8_AHB1_PERIPHERALS, .rcc_ahb1 = UART8_AHB1_PERIPHERALS,

View File

@ -281,7 +281,7 @@ void init(void)
busSwitchInit(); busSwitchInit();
#endif #endif
#ifdef USE_UART #if defined(USE_UART) && !defined(SITL)
uartPinConfigure(serialPinConfig()); uartPinConfigure(serialPinConfig());
#endif #endif
@ -342,7 +342,7 @@ void init(void)
beeperInit(beeperDevConfig()); beeperInit(beeperDevConfig());
#endif #endif
/* temp until PGs are implemented. */ /* temp until PGs are implemented. */
#ifdef USE_INVERTER #if defined(USE_INVERTER) && !defined(SITL)
initInverters(serialPinConfig()); initInverters(serialPinConfig());
#endif #endif

View File

@ -151,5 +151,6 @@
#define TARGET_IO_PORTD 0xffff #define TARGET_IO_PORTD 0xffff
#define TARGET_IO_PORTE 0xffff #define TARGET_IO_PORTE 0xffff
#define TARGET_IO_PORTF 0xffff #define TARGET_IO_PORTF 0xffff
#define TARGET_IO_PORTG 0xffff
#define USED_TIMERS ( TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) | TIM_N(12) | TIM_N(8) | TIM_N(9) | TIM_N(10) | TIM_N(11)) #define USED_TIMERS ( TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(5) | TIM_N(12) | TIM_N(8) | TIM_N(9) | TIM_N(10) | TIM_N(11))

View File

@ -59,14 +59,14 @@
#define USABLE_TIMER_CHANNEL_COUNT 0 #define USABLE_TIMER_CHANNEL_COUNT 0
//#define USE_UART1 #define USE_UART1
//#define USE_UART2 #define USE_UART2
//#define USE_UART3 #define USE_UART3
//#define USE_UART4 #define USE_UART4
//#define USE_UART5 #define USE_UART5
//#define USE_UART6 #define USE_UART6
//#define USE_UART7 #define USE_UART7
//#define USE_UART8 #define USE_UART8
//#define USE_SOFTSERIAL1 //#define USE_SOFTSERIAL1
//#define USE_SOFTSERIAL2 //#define USE_SOFTSERIAL2