227 lines
5.3 KiB
C
227 lines
5.3 KiB
C
/* USER CODE BEGIN Header */
|
|
/**
|
|
******************************************************************************
|
|
* @file : main.h
|
|
* @brief : Header for main.c file.
|
|
* This file contains the common defines of the application.
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* Copyright (c) 2023 STMicroelectronics.
|
|
* All rights reserved.
|
|
*
|
|
* This software is licensed under terms that can be found in the LICENSE file
|
|
* in the root directory of this software component.
|
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
/* USER CODE END Header */
|
|
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __MAIN_H
|
|
#define __MAIN_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "stm32f4xx_hal.h"
|
|
|
|
/* Private includes ----------------------------------------------------------*/
|
|
/* USER CODE BEGIN Includes */
|
|
#include <stdbool.h>
|
|
/* USER CODE END Includes */
|
|
|
|
/* Exported types ------------------------------------------------------------*/
|
|
/* USER CODE BEGIN ET */
|
|
|
|
/* USER CODE END ET */
|
|
|
|
/* Exported constants --------------------------------------------------------*/
|
|
/* USER CODE BEGIN EC */
|
|
|
|
/* USER CODE END EC */
|
|
|
|
/* Exported macro ------------------------------------------------------------*/
|
|
/* USER CODE BEGIN EM */
|
|
|
|
/* USER CODE END EM */
|
|
|
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
|
|
|
/* Exported functions prototypes ---------------------------------------------*/
|
|
void Error_Handler(void);
|
|
|
|
/* USER CODE BEGIN EFP */
|
|
|
|
/* USER CODE END EFP */
|
|
|
|
/* Private defines -----------------------------------------------------------*/
|
|
#define TEMP_Pin GPIO_PIN_1
|
|
#define TEMP_GPIO_Port GPIOC
|
|
#define DC_Pin GPIO_PIN_2
|
|
#define DC_GPIO_Port GPIOA
|
|
#define RESET_Pin GPIO_PIN_3
|
|
#define RESET_GPIO_Port GPIOA
|
|
#define SPI1_NSS_Pin GPIO_PIN_4
|
|
#define SPI1_NSS_GPIO_Port GPIOA
|
|
#define T_CS_Pin GPIO_PIN_5
|
|
#define T_CS_GPIO_Port GPIOC
|
|
#define T_IRQ_Pin GPIO_PIN_0
|
|
#define T_IRQ_GPIO_Port GPIOB
|
|
#define T_IRQ_EXTI_IRQn EXTI0_IRQn
|
|
#define TFT_BRIHTNESS_Pin GPIO_PIN_9
|
|
#define TFT_BRIHTNESS_GPIO_Port GPIOE
|
|
#define BUZZER_Pin GPIO_PIN_11
|
|
#define BUZZER_GPIO_Port GPIOE
|
|
#define BTN_Pin GPIO_PIN_8
|
|
#define BTN_GPIO_Port GPIOC
|
|
#define BTN_EXTI_IRQn EXTI9_5_IRQn
|
|
#define MOTOR_PWM2_Pin GPIO_PIN_6
|
|
#define MOTOR_PWM2_GPIO_Port GPIOB
|
|
#define MOTOR_PWM1_Pin GPIO_PIN_7
|
|
#define MOTOR_PWM1_GPIO_Port GPIOB
|
|
#define TOGGLE_LED_Pin GPIO_PIN_8
|
|
#define TOGGLE_LED_GPIO_Port GPIOB
|
|
/* USER CODE BEGIN Private defines */
|
|
|
|
#define ON 1
|
|
#define OFF 0
|
|
#define CLOCKWISE 1
|
|
#define COUNTERCLOCKWISE 0
|
|
#define PAUSE 2
|
|
|
|
#define RPM_MAX 10
|
|
#define LED_BRIGHTNESS_MAX 10
|
|
#define DISP_BRIGHTNESS_MAX 10
|
|
#define VOLUME_MAX 1
|
|
#define MODE_MAX 3
|
|
#define SLEEP_TIME (300000) // unit: ms
|
|
#define VOLTIMELINE 50
|
|
#define LONG_PRESS_TIME_X_150MS 10
|
|
#define PAUSE_TIME_S 1
|
|
|
|
#define TIME_TO_UPD_FLASH_AFTER_CHANGE_MS 10000
|
|
|
|
|
|
#define CLR_ACTIVE 128, 128, 128
|
|
#define CLR_UNSELECTED 253, 253, 253//0, 0, 0
|
|
#define CLR_SELECTED 6, 124, 62
|
|
|
|
|
|
typedef enum {
|
|
BTN_RELASED,
|
|
BTN_PRESS,
|
|
BTN_LONG_PRESS
|
|
} btn_status_t;
|
|
|
|
typedef enum
|
|
{
|
|
HOME = 0,
|
|
HOME_START,
|
|
HOME_SETTING,
|
|
HOME_BUZ,
|
|
HOME_LED,
|
|
HOME_RPM,
|
|
HOME_RPM_SET,
|
|
|
|
SETTING_PAGE,
|
|
SETTING_BACK,
|
|
SETTING_RUNTIME,
|
|
SETTING_RUNTIME_MIN_SET,
|
|
SETTING_RUNTIME_SEC_SET,
|
|
SETTING_UNIT,
|
|
SETTING_UNIT_SET,
|
|
SETTING_RPM,
|
|
SETTING_RPM_SET,
|
|
SETTING_PATTERN,
|
|
SETTING_PATTERN_SET,
|
|
SETTING_LIGHT_BRIGHTNESS,
|
|
SETTING_LIGHT_BRIGHTNESS_SET,
|
|
SETTING_DISP_BRIGHTNESS,
|
|
SETTING_DISP_BRIGHTNESS_SET,
|
|
SETTING_DISP_TIMEOUT,
|
|
SETTING_DISP_TIMEOUT_SET,
|
|
SETTING_BUZ_VOLUME,
|
|
SETTING_BUZ_VOLUME_SET,
|
|
}SCREEN_STATE;
|
|
|
|
typedef enum
|
|
{
|
|
FLASH_STATUS = 0,
|
|
LED_STATUS,
|
|
BUZ_STATUS,
|
|
RUN_MIN,
|
|
RUN_SEC,
|
|
TEMP_UNIT,
|
|
RPM_VAL,
|
|
MODE_NUM,
|
|
LIGHT_BRIGHT,
|
|
SCREEN_BRIGHT,
|
|
SLEEP_STATUS,
|
|
BUZ_VOLUME,
|
|
}FLASH_DATA;
|
|
|
|
typedef enum {
|
|
MOTOR_STOP,
|
|
MOTOR_RUN,
|
|
MOTOR_PAUSE
|
|
} motor_status_t;
|
|
|
|
typedef struct
|
|
{
|
|
SCREEN_STATE disp_status;
|
|
bool led_status;
|
|
bool buz_status;
|
|
motor_status_t motor_status;
|
|
|
|
uint8_t runtime_min;
|
|
uint8_t runtime_sec;
|
|
char uint_type;
|
|
uint16_t rpm;
|
|
uint8_t pattern;
|
|
uint8_t light_brightness;
|
|
uint8_t screen_brightness;
|
|
uint8_t screen_timeout;
|
|
uint8_t buzzer_volume;
|
|
uint8_t disp_runtime_min;
|
|
uint8_t disp_runtime_sec;
|
|
float temp_val;
|
|
uint32_t none;
|
|
}SCREEN_Buf;
|
|
|
|
typedef struct{
|
|
uint8_t dir;
|
|
uint8_t timeline;
|
|
}M_Node;
|
|
typedef struct{
|
|
uint8_t node_len;
|
|
M_Node node[10];
|
|
}MOTOR_Hash_Map;
|
|
|
|
void Init_DISP_Para(void);
|
|
void Init_Pattern(void);
|
|
|
|
void Motor_Set_Func(uint8_t dir, uint16_t speed_val);
|
|
void RunMotorCycle(uint8_t pattern, uint16_t speed);
|
|
|
|
void Sound_Set_Func(bool status, uint8_t volume, uint16_t timeline);
|
|
void LED_Set_Func(bool status, uint8_t light_val);
|
|
void TFT_Set_Func(uint8_t brightness);
|
|
void SleepMode_Func(bool sleep, uint8_t brightness);
|
|
//void TFT_Brightness_Setting(uint8_t value);
|
|
|
|
//void SleepMode_Func(void);
|
|
void Temp_Correction_Func(void);
|
|
void FLASH_Update(void);
|
|
|
|
/* USER CODE END Private defines */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __MAIN_H */
|