работает слейв и мастер
This commit is contained in:
100
App/hardware.c
Normal file
100
App/hardware.c
Normal file
@@ -0,0 +1,100 @@
|
||||
#include "hardware.h"
|
||||
#include "app_config.h"
|
||||
#include "main.h"
|
||||
#include "stm32wbxx_nucleo.h"
|
||||
|
||||
/*
|
||||
* Markdown note:
|
||||
* - This file is the only place that should know real GPIO/ADC pins.
|
||||
* - Replace the weak placeholder code with HAL_GPIO_ReadPin() and HAL_ADC calls
|
||||
* after STM32CubeWB/CubeMX generates the board initialization.
|
||||
*/
|
||||
|
||||
void Hardware_Init(void)
|
||||
{
|
||||
GPIO_InitTypeDef gpio = {0};
|
||||
|
||||
__HAL_RCC_GPIOB_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOE_CLK_ENABLE();
|
||||
|
||||
#if (APP_ROLE_DETECT_ENABLED != 0U)
|
||||
gpio.Pin = APP_ROLE_DETECT_GPIO_PIN;
|
||||
gpio.Mode = GPIO_MODE_INPUT;
|
||||
gpio.Pull = APP_ROLE_DETECT_PULL;
|
||||
gpio.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(APP_ROLE_DETECT_GPIO_PORT, &gpio);
|
||||
#endif
|
||||
|
||||
gpio.Pin = APP_BUTTON1_GPIO_PIN | APP_BUTTON2_GPIO_PIN | APP_BUTTON3_GPIO_PIN;
|
||||
gpio.Mode = GPIO_MODE_INPUT;
|
||||
gpio.Pull = (APP_BUTTON_ACTIVE_LEVEL == 0U) ? GPIO_PULLUP : GPIO_PULLDOWN;
|
||||
gpio.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(APP_BUTTON_GPIO_PORT, &gpio);
|
||||
|
||||
gpio.Pin = APP_ROLE_LED_GPIO_PIN;
|
||||
gpio.Mode = GPIO_MODE_OUTPUT_PP;
|
||||
gpio.Pull = GPIO_NOPULL;
|
||||
gpio.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(APP_ROLE_LED_GPIO_PORT, &gpio);
|
||||
Hardware_SetRoleLed(false);
|
||||
}
|
||||
|
||||
void Hardware_Process(void)
|
||||
{
|
||||
}
|
||||
|
||||
uint32_t Hardware_GetTickMs(void)
|
||||
{
|
||||
return HAL_GetTick();
|
||||
}
|
||||
|
||||
|
||||
bool Hardware_ReadRoleSwitchIsMaster(void)
|
||||
{
|
||||
#if (APP_ROLE_DETECT_ENABLED != 0U)
|
||||
return (HAL_GPIO_ReadPin(APP_ROLE_DETECT_GPIO_PORT, APP_ROLE_DETECT_GPIO_PIN) ==
|
||||
APP_ROLE_DETECT_MASTER_LEVEL);
|
||||
#else
|
||||
return (APP_ROLE_DEFAULT == APP_ROLE_MASTER);
|
||||
#endif
|
||||
}
|
||||
|
||||
void Hardware_SetRoleLed(bool on)
|
||||
{
|
||||
const GPIO_PinState active = APP_ROLE_LED_ACTIVE_LEVEL;
|
||||
const GPIO_PinState inactive = (active == GPIO_PIN_SET) ? GPIO_PIN_RESET : GPIO_PIN_SET;
|
||||
|
||||
HAL_GPIO_WritePin(APP_ROLE_LED_GPIO_PORT,
|
||||
APP_ROLE_LED_GPIO_PIN,
|
||||
on ? active : inactive);
|
||||
}
|
||||
|
||||
bool Hardware_ReadButton(uint8_t index)
|
||||
{
|
||||
uint16_t pin;
|
||||
|
||||
switch (index)
|
||||
{
|
||||
case 0U:
|
||||
pin = APP_BUTTON1_GPIO_PIN;
|
||||
break;
|
||||
|
||||
case 1U:
|
||||
pin = APP_BUTTON2_GPIO_PIN;
|
||||
break;
|
||||
|
||||
case 2U:
|
||||
pin = APP_BUTTON3_GPIO_PIN;
|
||||
break;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return (HAL_GPIO_ReadPin(APP_BUTTON_GPIO_PORT, pin) == APP_BUTTON_ACTIVE_LEVEL);
|
||||
}
|
||||
|
||||
uint16_t Hardware_ReadAnalogRaw(void)
|
||||
{
|
||||
return 0U;
|
||||
}
|
||||
Reference in New Issue
Block a user