/* Private variables----------------------------------------------------------*/
static void LED_Fun(uint8_t,void(*Callback)(uint8_t));
/* Public variables-----------------------------------------------------------*/
LED_t LED =
{
LED_Fun,
};
/* Private function prototypes------------------------------------------------*/
/*
* @name LED_Fun
* @brief LED¹¦Äܺ¯Êý£¬ÖмäÐéÄ⺯Êý
* @param Num -> ±àºÅ£¬Callback ->»Øµ÷º¯ÊýÖ¸Õë
* @retval None
*/
static void LED_Fun(uint8_t LED_Num,void(*Callba)(uint8_t))
{
(*Callba)(LED_Num);
}
/*
* @name LED_ON
* @brief ´ò¿ªLED
* @param Num -> 񅧏
* @retval None
*/
void LED_ON(uint8_t LED_Num)
{
//Ìõ¼þÑ¡ÔñÓï¾ä
switch(LED_Num)
{
case LED1: HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET); break;
case LED2: HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_SET); break;
case LED3: HAL_GPIO_WritePin(LED3_GPIO_Port,LED3_Pin,GPIO_PIN_SET); break;
default: System.Assert_Failed();
}
}
/*
* @name LED_OFF
* @brief ¹Ø±ÕLED
* @param Num -> 񅧏
* @retval None
*/
void LED_OFF(uint8_t LED_Num)
{
//Ìõ¼þÑ¡ÔñÓï¾ä
switch(LED_Num)
{
case LED1: HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET); break;
case LED2: HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_RESET); break;
case LED3: HAL_GPIO_WritePin(LED3_GPIO_Port,LED3_Pin,GPIO_PIN_RESET); break;
default: System.Assert_Failed();
}
}
/*
* @name LED_Flip
* @brief È¡·´LED
* @param Num -> 񅧏
* @retval None
*/
void LED_Flip(uint8_t LED_Num)
{
//Ìõ¼þÑ¡ÔñÓï¾ä
switch(LED_Num)
{
case LED1: HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin); break;
case LED2: HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin); break;
case LED3: HAL_GPIO_TogglePin(LED3_GPIO_Port,LED3_Pin); break;
default: System.Assert_Failed();
}
}
/* Private function prototypes------------------------------------------------*/
static void Fun_STA1(void);
static void Fun_STA2(void);
static void Fun_STA3(void);
static void Fun_STA4(void);
static void Fun_STA5(void);
/* Public variables-----------------------------------------------------------*/
//½á¹¹Ì嶨Òå
STA_Machine_t STA_Machine =
{
STA1,
Fun_STA1,
Fun_STA2,
Fun_STA3,
Fun_STA4,
Fun_STA5,
};
/*
* @name Fun_STA1 - 5
* @brief ״̬º¯Êý
* @param None
* @retval None
*/
void Fun_STA1()
{
HAL_Delay(500); //ÑÓʱ500ms
LED.LED_Fun(LED1,LED_Flip); //·×ªLED1,ÃðµÆ
LED.LED_Fun(LED2,LED_Flip); //·×ªLED2,ÃðµÆ
LED.LED_Fun(LED3,LED_Flip); //·×ªLED3,ÃðµÆ
//״̬»úÇл»ÖÁ״̬2
STA_Machine.ucSTA_Machine_Status = STA2;
}
void Fun_STA2()
{
HAL_Delay(500); //ÑÓʱ500ms
LED.LED_Fun(LED1,LED_ON); //LED1ÁÁµÆ
LED.LED_Fun(LED2,LED_OFF); //LED2ÃðµÆ
LED.LED_Fun(LED3,LED_OFF); //LED3ÃðµÆ
//״̬»úÇл»ÖÁ״̬3
STA_Machine.ucSTA_Machine_Status = STA3;
}
void Fun_STA3()
{
HAL_Delay(500); //ÑÓʱ500ms
LED.LED_Fun(LED1,LED_OFF); //LED1ÃðµÆ
LED.LED_Fun(LED2,LED_ON); //LED2ÁÁµÆ
LED.LED_Fun(LED3,LED_OFF); //LED3ÃðµÆ
//״̬»úÇл»ÖÁ״̬4
STA_Machine.ucSTA_Machine_Status = STA4;
}
void Fun_STA4()
{
HAL_Delay(500); //ÑÓʱ500ms
LED.LED_Fun(LED1,LED_OFF); //LED1ÃðµÆ
LED.LED_Fun(LED2,LED_OFF); //LED2ÃðµÆ
LED.LED_Fun(LED3,LED_ON); //LED3ÁÁµÆ
//״̬»úÇл»ÖÁ״̬5
STA_Machine.ucSTA_Machine_Status = STA5;
}
void Fun_STA5()
{
HAL_Delay(500); //ÑÓʱ500ms
LED.LED_Fun(LED1,LED_ON); //LED1ÁÁµÆ
LED.LED_Fun(LED2,LED_ON); //LED2ÁÁµÆ
LED.LED_Fun(LED3,LED_ON); //LED3ÁÁµÆ
//״̬»úÇл»ÖÁ³õʼ״̬1
STA_Machine.ucSTA_Machine_Status = STA1;
}