You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#include "pin.h"
const char* stm32pin2name(Pin_t pin) { switch (pin) { case PinNull: return "PinNull"; case PA0: return "PA0"; case PA1: return "PA1"; case PA2: return "PA2"; case PA3: return "PA3"; case PA4: return "PA4"; case PA5: return "PA5"; case PA6: return "PA6"; case PA7: return "PA7"; case PA8: return "PA8"; case PA9: return "PA9"; case PA10: return "PA10"; case PA11: return "PA11"; case PA12: return "PA12"; case PA13: return "PA13"; case PA14: return "PA14"; case PA15: return "PA15"; case PB0: return "PB0"; case PB1: return "PB1"; case PB2: return "PB2"; case PB3: return "PB3"; case PB4: return "PB4"; case PB5: return "PB5"; case PB6: return "PB6"; case PB7: return "PB7"; case PB8: return "PB8"; case PB9: return "PB9"; case PB10: return "PB10"; case PB11: return "PB11"; case PB12: return "PB12"; case PB13: return "PB13"; case PB14: return "PB14"; case PB15: return "PB15"; case PC0: return "PC0"; case PC1: return "PC1"; case PC2: return "PC2"; case PC3: return "PC3"; case PC4: return "PC4"; case PC5: return "PC5"; case PC6: return "PC6"; case PC7: return "PC7"; case PC8: return "PC8"; case PC9: return "PC9"; case PC10: return "PC10"; case PC11: return "PC11"; case PC12: return "PC12"; case PC13: return "PC13"; case PC14: return "PC14"; case PC15: return "PC15"; case PD0: return "PD0"; case PD1: return "PD1"; case PD2: return "PD2"; case PD3: return "PD3"; case PD4: return "PD4"; case PD5: return "PD5"; case PD6: return "PD6"; case PD7: return "PD7"; case PD8: return "PD8"; case PD9: return "PD9"; case PD10: return "PD10"; case PD11: return "PD11"; case PD12: return "PD12"; case PD13: return "PD13"; case PD14: return "PD14"; case PD15: return "PD15"; case PE0: return "PE0"; case PE1: return "PE1"; case PE2: return "PE2"; case PE3: return "PE3"; case PE4: return "PE4"; case PE5: return "PE5"; case PE6: return "PE6"; case PE7: return "PE7"; case PE8: return "PE8"; case PE9: return "PE9"; case PE10: return "PE10"; case PE11: return "PE11"; case PE12: return "PE12"; case PE13: return "PE13"; case PE14: return "PE14"; case PE15: return "PE15"; case PF0: return "PF0"; case PF1: return "PF1"; case PF2: return "PF2"; case PF3: return "PF3"; case PF4: return "PF4"; case PF5: return "PF5"; case PF6: return "PF6"; case PF7: return "PF7"; case PF8: return "PF8"; case PF9: return "PF9"; case PF10: return "PF10"; case PF11: return "PF11"; case PF12: return "PF12"; case PF13: return "PF13"; case PF14: return "PF14"; case PF15: return "PF15"; case PG0: return "PG0"; case PG1: return "PG1"; case PG2: return "PG2"; case PG3: return "PG3"; case PG4: return "PG4"; case PG5: return "PG5"; case PG6: return "PG6"; case PG7: return "PG7"; case PG8: return "PG8"; case PG9: return "PG9"; case PG10: return "PG10"; case PG11: return "PG11"; case PG12: return "PG12"; case PG13: return "PG13"; case PG14: return "PG14"; case PG15: return "PG15"; default: break; } return "UNKNOWN_PIN"; };
GPIO_TypeDef* stm32_get_gpio_group(Pin_t pin) { int port = pin >> 4;
switch (port) { case (PA0 >> 4): #ifdef GPIOA
return GPIOA; #endif
break; case (PB0 >> 4): #ifdef GPIOB
return GPIOB; #endif
break; case (PC0 >> 4): #ifdef GPIOC
return GPIOC; #endif
break; case (PD0 >> 4): #ifdef GPIOD
return GPIOD; #endif
break;
case (PE0 >> 4): #ifdef GPIOE
return GPIOE; #endif
break; case (PF0 >> 4): #ifdef GPIOF
return GPIOF; #endif
break; case (PG0 >> 4): #ifdef GPIOG
return GPIOG; #endif
break; default: break; } return NULL; } const char* stm32_gpio_group_get_name(GPIO_TypeDef* gpio_group) { if (gpio_group == GPIOA) { return "GPIOA"; } if (gpio_group == GPIOB) { return "GPIOB"; } if (gpio_group == GPIOC) { return "GPIOC"; } if (gpio_group == GPIOD) { return "GPIOD"; } if (gpio_group == GPIOE) { return "GPIOE"; } if (gpio_group == GPIOF) { return "GPIOF"; } if (gpio_group == GPIOG) { return "GPIOG"; } return "unknown gpio group"; } uint16_t stm32_get_pinoff(Pin_t pin) { uint16_t pinoff = pin & 0x0F; switch (pinoff) { case 0: return GPIO_PIN_0; case 1: return GPIO_PIN_1; case 2: return GPIO_PIN_2; case 3: return GPIO_PIN_3; case 4: return GPIO_PIN_4; case 5: return GPIO_PIN_5; case 6: return GPIO_PIN_6; case 7: return GPIO_PIN_7; case 8: return GPIO_PIN_8; case 9: return GPIO_PIN_9; case 10: return GPIO_PIN_10; case 11: return GPIO_PIN_11; case 12: return GPIO_PIN_12; case 13: return GPIO_PIN_13; case 14: return GPIO_PIN_14; case 15: return GPIO_PIN_15; default: break; }; return 0; } const char* stm32_pinoff_get_name(uint16_t pinoff) { if (pinoff == GPIO_PIN_0) { return "0"; } if (pinoff == GPIO_PIN_1) { return "1"; } if (pinoff == GPIO_PIN_2) { return "2"; } if (pinoff == GPIO_PIN_3) { return "3"; } if (pinoff == GPIO_PIN_4) { return "4"; } if (pinoff == GPIO_PIN_5) { return "5"; } if (pinoff == GPIO_PIN_6) { return "6"; } if (pinoff == GPIO_PIN_7) { return "7"; } if (pinoff == GPIO_PIN_8) { return "8"; } if (pinoff == GPIO_PIN_9) { return "9"; } if (pinoff == GPIO_PIN_10) { return "10"; } if (pinoff == GPIO_PIN_11) { return "11"; } if (pinoff == GPIO_PIN_12) { return "12"; } if (pinoff == GPIO_PIN_13) { return "13"; } if (pinoff == GPIO_PIN_14) { return "14"; } if (pinoff == GPIO_PIN_15) { return "15"; } return "unknown pinoff"; }
|