/* 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 /* 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 */