mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-19 22:35:23 +03:00
[H7] Cleanup / consolidate io.c and io.h
This commit is contained in:
parent
e3c8b1b46a
commit
8185ee03ef
2 changed files with 4 additions and 46 deletions
|
@ -155,16 +155,10 @@ uint32_t IO_EXTI_Line(IO_t io)
|
||||||
if (!io) {
|
if (!io) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#if defined(STM32F1)
|
#if defined(STM32F1) || defined(STM32F4) || defined(STM32F7) || defined(STM32H7)
|
||||||
return 1 << IO_GPIOPinIdx(io);
|
return 1 << IO_GPIOPinIdx(io);
|
||||||
#elif defined(STM32F3)
|
#elif defined(STM32F3)
|
||||||
return IO_GPIOPinIdx(io);
|
return IO_GPIOPinIdx(io);
|
||||||
#elif defined(STM32F4)
|
|
||||||
return 1 << IO_GPIOPinIdx(io);
|
|
||||||
#elif defined(STM32F7)
|
|
||||||
return 1 << IO_GPIOPinIdx(io);
|
|
||||||
#elif defined(STM32H7)
|
|
||||||
return 1 << IO_GPIOPinIdx(io);
|
|
||||||
#elif defined(SIMULATOR_BUILD)
|
#elif defined(SIMULATOR_BUILD)
|
||||||
return 0;
|
return 0;
|
||||||
#else
|
#else
|
||||||
|
@ -194,11 +188,7 @@ void IOWrite(IO_t io, bool hi)
|
||||||
#if defined(USE_FULL_LL_DRIVER)
|
#if defined(USE_FULL_LL_DRIVER)
|
||||||
LL_GPIO_SetOutputPin(IO_GPIO(io), IO_Pin(io) << (hi ? 0 : 16));
|
LL_GPIO_SetOutputPin(IO_GPIO(io), IO_Pin(io) << (hi ? 0 : 16));
|
||||||
#elif defined(USE_HAL_DRIVER)
|
#elif defined(USE_HAL_DRIVER)
|
||||||
if (hi) {
|
HAL_GPIO_WritePin(IO_GPIO(io), IO_Pin(io), hi ? GPIO_PIN_SET : GPIO_PIN_RESET);
|
||||||
HAL_GPIO_WritePin(IO_GPIO(io), IO_Pin(io), GPIO_PIN_SET);
|
|
||||||
} else {
|
|
||||||
HAL_GPIO_WritePin(IO_GPIO(io), IO_Pin(io), GPIO_PIN_RESET);
|
|
||||||
}
|
|
||||||
#elif defined(STM32F4)
|
#elif defined(STM32F4)
|
||||||
if (hi) {
|
if (hi) {
|
||||||
IO_GPIO(io)->BSRRL = IO_Pin(io);
|
IO_GPIO(io)->BSRRL = IO_Pin(io);
|
||||||
|
@ -337,21 +327,7 @@ void IOConfigGPIO(IO_t io, ioConfig_t cfg)
|
||||||
|
|
||||||
void IOConfigGPIO(IO_t io, ioConfig_t cfg)
|
void IOConfigGPIO(IO_t io, ioConfig_t cfg)
|
||||||
{
|
{
|
||||||
if (!io) {
|
IOConfigGPIOAF(io, cfg, 0);
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
rccPeriphTag_t rcc = ioPortDefs[IO_GPIOPortIdx(io)].rcc;
|
|
||||||
RCC_ClockCmd(rcc, ENABLE);
|
|
||||||
|
|
||||||
GPIO_InitTypeDef init = {
|
|
||||||
.Pin = IO_Pin(io),
|
|
||||||
.Mode = (cfg >> 0) & 0x13,
|
|
||||||
.Speed = (cfg >> 2) & 0x03,
|
|
||||||
.Pull = (cfg >> 5) & 0x03,
|
|
||||||
};
|
|
||||||
|
|
||||||
HAL_GPIO_Init(IO_GPIO(io), &init);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IOConfigGPIOAF(IO_t io, ioConfig_t cfg, uint8_t af)
|
void IOConfigGPIOAF(IO_t io, ioConfig_t cfg, uint8_t af)
|
||||||
|
|
|
@ -49,25 +49,7 @@
|
||||||
#define IOCFG_IPU IO_CONFIG(GPIO_Mode_IPU, GPIO_Speed_2MHz)
|
#define IOCFG_IPU IO_CONFIG(GPIO_Mode_IPU, GPIO_Speed_2MHz)
|
||||||
#define IOCFG_IN_FLOATING IO_CONFIG(GPIO_Mode_IN_FLOATING, GPIO_Speed_2MHz)
|
#define IOCFG_IN_FLOATING IO_CONFIG(GPIO_Mode_IN_FLOATING, GPIO_Speed_2MHz)
|
||||||
|
|
||||||
#elif defined(STM32H7)
|
#elif defined(STM32F7) || defined(STM32H7)
|
||||||
// Copied from F7. Need Review
|
|
||||||
//speed is packed inside modebits 5 and 2,
|
|
||||||
#define IO_CONFIG(mode, speed, pupd) ((mode) | ((speed) << 2) | ((pupd) << 5))
|
|
||||||
|
|
||||||
#define IOCFG_OUT_PP IO_CONFIG(GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_LOW, GPIO_NOPULL)
|
|
||||||
#define IOCFG_OUT_PP_UP IO_CONFIG(GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_LOW, GPIO_PULLUP)
|
|
||||||
#define IOCFG_OUT_PP_25 IO_CONFIG(GPIO_MODE_OUTPUT_PP, GPIO_SPEED_FREQ_HIGH, GPIO_NOPULL)
|
|
||||||
#define IOCFG_OUT_OD IO_CONFIG(GPIO_MODE_OUTPUT_OD, GPIO_SPEED_FREQ_LOW, GPIO_NOPULL)
|
|
||||||
#define IOCFG_AF_PP IO_CONFIG(GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_LOW, GPIO_NOPULL)
|
|
||||||
#define IOCFG_AF_PP_PD IO_CONFIG(GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_LOW, GPIO_PULLDOWN)
|
|
||||||
#define IOCFG_AF_PP_UP IO_CONFIG(GPIO_MODE_AF_PP, GPIO_SPEED_FREQ_LOW, GPIO_PULLUP)
|
|
||||||
#define IOCFG_AF_OD IO_CONFIG(GPIO_MODE_AF_OD, GPIO_SPEED_FREQ_LOW, GPIO_NOPULL)
|
|
||||||
#define IOCFG_IPD IO_CONFIG(GPIO_MODE_INPUT, GPIO_SPEED_FREQ_LOW, GPIO_PULLDOWN)
|
|
||||||
#define IOCFG_IPU IO_CONFIG(GPIO_MODE_INPUT, GPIO_SPEED_FREQ_LOW, GPIO_PULLUP)
|
|
||||||
#define IOCFG_IN_FLOATING IO_CONFIG(GPIO_MODE_INPUT, GPIO_SPEED_FREQ_LOW, GPIO_NOPULL)
|
|
||||||
#define IOCFG_IPU_25 IO_CONFIG(GPIO_MODE_INPUT, GPIO_SPEED_FREQ_HIGH, GPIO_PULLUP)
|
|
||||||
|
|
||||||
#elif defined(STM32F7)
|
|
||||||
|
|
||||||
//speed is packed inside modebits 5 and 2,
|
//speed is packed inside modebits 5 and 2,
|
||||||
#define IO_CONFIG(mode, speed, pupd) ((mode) | ((speed) << 2) | ((pupd) << 5))
|
#define IO_CONFIG(mode, speed, pupd) ((mode) | ((speed) << 2) | ((pupd) << 5))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue