1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-18 22:05:17 +03:00

STM32F3DISCOVERY - Enable LEDs. Use RED LEDs instead of buzzer output.

LED and BUZZER outputs on the STM32F3DISCOVERY are inverted.
This commit is contained in:
Dominic Clifton 2014-05-05 13:14:17 +01:00
parent c07f67735e
commit b0cc4df73f
4 changed files with 35 additions and 12 deletions

View file

@ -3,9 +3,14 @@
// Helpful macros // Helpful macros
#ifdef LED0 #ifdef LED0
#define LED0_TOGGLE digitalToggle(LED0_GPIO, LED0_PIN); #define LED0_TOGGLE digitalToggle(LED0_GPIO, LED0_PIN);
#ifndef LED0_INVERTED
#define LED0_OFF digitalHi(LED0_GPIO, LED0_PIN); #define LED0_OFF digitalHi(LED0_GPIO, LED0_PIN);
#define LED0_ON digitalLo(LED0_GPIO, LED0_PIN); #define LED0_ON digitalLo(LED0_GPIO, LED0_PIN);
#else #else
#define LED0_OFF digitalLo(LED0_GPIO, LED0_PIN);
#define LED0_ON digitalHi(LED0_GPIO, LED0_PIN);
#endif // inverted
#else
#define LED0_TOGGLE #define LED0_TOGGLE
#define LED0_OFF #define LED0_OFF
#define LED0_ON #define LED0_ON
@ -13,9 +18,14 @@
#ifdef LED1 #ifdef LED1
#define LED1_TOGGLE digitalToggle(LED1_GPIO, LED1_PIN); #define LED1_TOGGLE digitalToggle(LED1_GPIO, LED1_PIN);
#ifndef LED1_INVERTED
#define LED1_OFF digitalHi(LED1_GPIO, LED1_PIN); #define LED1_OFF digitalHi(LED1_GPIO, LED1_PIN);
#define LED1_ON digitalLo(LED1_GPIO, LED1_PIN); #define LED1_ON digitalLo(LED1_GPIO, LED1_PIN);
#else #else
#define LED1_OFF digitalLo(LED1_GPIO, LED1_PIN);
#define LED1_ON digitalHi(LED1_GPIO, LED1_PIN);
#endif // inverted
#else
#define LED1_TOGGLE #define LED1_TOGGLE
#define LED1_OFF #define LED1_OFF
#define LED1_ON #define LED1_ON

View file

@ -15,7 +15,7 @@
void (* systemBeepPtr)(bool onoff) = NULL; void (* systemBeepPtr)(bool onoff) = NULL;
static void beepRev4(bool onoff) static void beepNormal(bool onoff)
{ {
if (onoff) { if (onoff) {
digitalLo(BEEP_GPIO, BEEP_PIN); digitalLo(BEEP_GPIO, BEEP_PIN);
@ -24,7 +24,7 @@ static void beepRev4(bool onoff)
} }
} }
static void beepRev5(bool onoff) static void beepInverted(bool onoff)
{ {
if (onoff) { if (onoff) {
digitalHi(BEEP_GPIO, BEEP_PIN); digitalHi(BEEP_GPIO, BEEP_PIN);
@ -41,15 +41,24 @@ void systemBeep(bool onoff)
#endif #endif
} }
static inline bool isBuzzerOutputInverted(void)
{
#ifdef BUZZER_INVERTED
return true;
#else
// Naze rev5 needs inverted beeper.
return hse_value == 12000000;
#endif
}
void beeperInit(void) void beeperInit(void)
{ {
#ifdef BUZZER #ifdef BUZZER
// Configure gpio // Configure gpio
// rev5 needs inverted beeper. oops. if (isBuzzerOutputInverted())
if (hse_value == 12000000) systemBeepPtr = beepInverted;
systemBeepPtr = beepRev5;
else else
systemBeepPtr = beepRev4; systemBeepPtr = beepNormal;
BEEP_OFF; BEEP_OFF;
#endif #endif
} }

View file

@ -126,6 +126,7 @@ void systemInit(bool overclock)
RCC_AHBPeriph_GPIOB | RCC_AHBPeriph_GPIOB |
RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOC |
RCC_AHBPeriph_GPIOD | RCC_AHBPeriph_GPIOD |
RCC_AHBPeriph_GPIOE |
/*RCC_AHBPeriph_GPIOF | */ /*RCC_AHBPeriph_GPIOF | */
RCC_AHBPeriph_ADC12, RCC_AHBPeriph_ADC12,
ENABLE ENABLE

View file

@ -13,12 +13,15 @@
#define U_ID_1 (*(uint32_t*)0x10000000) #define U_ID_1 (*(uint32_t*)0x10000000)
#define U_ID_2 (*(uint32_t*)0x10000003) #define U_ID_2 (*(uint32_t*)0x10000003)
#define LED0_GPIO GPIOB #define LED0_GPIO GPIOE
#define LED0_PIN Pin_3 // PB3 (LED) #define LED0_PIN Pin_8|Pin_12 // Blue LEDs - PE8/PE12
#define LED1_GPIO GPIOB #define LED0_INVERTED
#define LED1_PIN Pin_4 // PB4 (LED) #define LED1_GPIO GPIOE
#define BEEP_GPIO GPIOA #define LED1_PIN Pin_10|Pin_14 // Orange LEDs - PE10/PE14
#define BEEP_PIN Pin_12 // PA12 (Buzzer) #define LED1_INVERTED
#define BEEP_GPIO GPIOE
#define BEEP_PIN Pin_9|Pin_13 // Red LEDs - PE9/PE13
#define BUZZER_INVERTED
#define BARO_GPIO GPIOC #define BARO_GPIO GPIOC
#define BARO_PIN Pin_13 #define BARO_PIN Pin_13