mirror of
https://github.com/hathach/tinyusb.git
synced 2025-02-18 21:41:12 +00:00
add button for stm32f407 and stm32f411 board
This commit is contained in:
parent
f2bbb75695
commit
6268f395eb
@ -29,8 +29,13 @@
|
|||||||
#include "stm32f4xx.h"
|
#include "stm32f4xx.h"
|
||||||
#include "stm32f4xx_hal_conf.h"
|
#include "stm32f4xx_hal_conf.h"
|
||||||
|
|
||||||
#define LED_PORT GPIOD
|
#define LED_PORT GPIOD
|
||||||
#define LED_PIN GPIO_PIN_14
|
#define LED_PIN GPIO_PIN_14
|
||||||
|
#define LED_STATE_ON 1
|
||||||
|
|
||||||
|
#define BUTTON_PORT GPIOA
|
||||||
|
#define BUTTON_PIN GPIO_PIN_0
|
||||||
|
#define BUTTON_STATE_ACTIVE 1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief System Clock Configuration
|
* @brief System Clock Configuration
|
||||||
@ -101,11 +106,32 @@ void board_init(void)
|
|||||||
// Notify runtime of frequency change.
|
// Notify runtime of frequency change.
|
||||||
SystemCoreClockUpdate();
|
SystemCoreClockUpdate();
|
||||||
|
|
||||||
// Enable USB OTG clock
|
__HAL_RCC_GPIOA_CLK_ENABLE(); // button, USB D+/D-
|
||||||
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
__HAL_RCC_GPIOD_CLK_ENABLE(); // LED
|
||||||
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct;
|
GPIO_InitTypeDef GPIO_InitStruct;
|
||||||
|
|
||||||
|
// LED
|
||||||
|
__HAL_RCC_GPIOD_CLK_ENABLE();
|
||||||
|
|
||||||
|
GPIO_InitStruct.Pin = LED_PIN;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
|
||||||
|
HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
board_led_write(false);
|
||||||
|
|
||||||
|
// Button
|
||||||
|
GPIO_InitStruct.Pin = BUTTON_PIN;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
|
||||||
|
HAL_GPIO_Init(BUTTON_PORT, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
// Enable USB OTG clock
|
||||||
|
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
||||||
|
|
||||||
// USB Pin Init
|
// USB Pin Init
|
||||||
// PA9- VUSB, PA10- ID, PA11- DM, PA12- DP
|
// PA9- VUSB, PA10- ID, PA11- DM, PA12- DP
|
||||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||||
@ -131,19 +157,6 @@ void board_init(void)
|
|||||||
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
|
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
// Init the LED
|
|
||||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
|
||||||
|
|
||||||
GPIO_InitStruct.Pin = LED_PIN;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
|
|
||||||
HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
board_led_write(false);
|
|
||||||
|
|
||||||
// TODO Button
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
@ -152,16 +165,14 @@ void board_init(void)
|
|||||||
|
|
||||||
void board_led_write(bool state)
|
void board_led_write(bool state)
|
||||||
{
|
{
|
||||||
HAL_GPIO_WritePin(LED_PORT, LED_PIN, state);
|
HAL_GPIO_WritePin(LED_PORT, LED_PIN, state ? LED_STATE_ON : (1-LED_STATE_ON));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t board_button_read(void)
|
uint32_t board_button_read(void)
|
||||||
{
|
{
|
||||||
// TODO implement
|
return BUTTON_STATE_ACTIVE == HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if CFG_TUSB_OS == OPT_OS_NONE
|
#if CFG_TUSB_OS == OPT_OS_NONE
|
||||||
volatile uint32_t system_ticks = 0;
|
volatile uint32_t system_ticks = 0;
|
||||||
void SysTick_Handler (void)
|
void SysTick_Handler (void)
|
||||||
|
@ -29,8 +29,13 @@
|
|||||||
#include "stm32f4xx.h"
|
#include "stm32f4xx.h"
|
||||||
#include "stm32f4xx_hal_conf.h"
|
#include "stm32f4xx_hal_conf.h"
|
||||||
|
|
||||||
#define LED_PORT GPIOD
|
#define LED_PORT GPIOD
|
||||||
#define LED_PIN GPIO_PIN_13
|
#define LED_PIN GPIO_PIN_13
|
||||||
|
#define LED_STATE_ON 1
|
||||||
|
|
||||||
|
#define BUTTON_PORT GPIOA
|
||||||
|
#define BUTTON_PIN GPIO_PIN_0
|
||||||
|
#define BUTTON_STATE_ACTIVE 1
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief System Clock Configuration
|
* @brief System Clock Configuration
|
||||||
@ -101,16 +106,32 @@ void board_init(void)
|
|||||||
// Notify runtime of frequency change.
|
// Notify runtime of frequency change.
|
||||||
SystemCoreClockUpdate();
|
SystemCoreClockUpdate();
|
||||||
|
|
||||||
// Enable USB OTG clock
|
__HAL_RCC_GPIOA_CLK_ENABLE(); // button, USB D+/D-
|
||||||
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
__HAL_RCC_GPIOD_CLK_ENABLE(); // LED
|
||||||
|
|
||||||
|
|
||||||
/* Configure USB FS GPIOs */
|
|
||||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
|
||||||
|
|
||||||
GPIO_InitTypeDef GPIO_InitStruct;
|
GPIO_InitTypeDef GPIO_InitStruct;
|
||||||
|
|
||||||
/* Configure DM DP Pins */
|
// LED
|
||||||
|
GPIO_InitStruct.Pin = LED_PIN;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
|
||||||
|
HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
board_led_write(false);
|
||||||
|
|
||||||
|
// Button
|
||||||
|
GPIO_InitStruct.Pin = BUTTON_PIN;
|
||||||
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
|
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
|
||||||
|
HAL_GPIO_Init(BUTTON_PORT, &GPIO_InitStruct);
|
||||||
|
|
||||||
|
// Enable USB OTG clock
|
||||||
|
__HAL_RCC_USB_OTG_FS_CLK_ENABLE();
|
||||||
|
|
||||||
|
/* Configure USB FS GPIOs */
|
||||||
|
/* Configure USB D+ D- Pins */
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_11 | GPIO_PIN_12;
|
GPIO_InitStruct.Pin = GPIO_PIN_11 | GPIO_PIN_12;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
@ -131,19 +152,6 @@ void board_init(void)
|
|||||||
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
|
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
|
GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS;
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
|
|
||||||
// Init the LED
|
|
||||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
|
||||||
|
|
||||||
GPIO_InitStruct.Pin = LED_PIN;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_PULLUP;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
|
|
||||||
HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
board_led_write(false);
|
|
||||||
|
|
||||||
// TODO Button
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
@ -152,16 +160,14 @@ void board_init(void)
|
|||||||
|
|
||||||
void board_led_write(bool state)
|
void board_led_write(bool state)
|
||||||
{
|
{
|
||||||
HAL_GPIO_WritePin(LED_PORT, LED_PIN, state);
|
HAL_GPIO_WritePin(LED_PORT, LED_PIN, state ? LED_STATE_ON : (1-LED_STATE_ON));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t board_button_read(void)
|
uint32_t board_button_read(void)
|
||||||
{
|
{
|
||||||
// TODO implement
|
return BUTTON_STATE_ACTIVE == HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if CFG_TUSB_OS == OPT_OS_NONE
|
#if CFG_TUSB_OS == OPT_OS_NONE
|
||||||
volatile uint32_t system_ticks = 0;
|
volatile uint32_t system_ticks = 0;
|
||||||
void SysTick_Handler (void)
|
void SysTick_Handler (void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user