#define KEY_TIME_OUT 1000 //按键1s超时
//PB12----补光灯1,高电平亮,低电平灭
//PB13----补光灯2
//PB14----相机1
//PB15----相机2
//PA4-----按键1
//PA5-----按键2
//PA6-----LED
//PB5-----七线激光器1,频率0-100k,占空比1-99
//PB6-----七线激光器2
//PB7-----单线激光器3
#define Read_Key1() HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_4) //按键按下为高电平
#define Read_Key2() HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_5)
//激光A
#define Laser1_On() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
#define Laser1_Off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
//激光B
#define Laser2_On() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_SET);
#define Laser2_Off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6, GPIO_PIN_RESET);
//单线激光
#define Laser3_On() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_SET);
#define Laser3_Off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7, GPIO_PIN_RESET);
#define Led1_On() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_SET);
#define Led1_Off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
#define Led2_On() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_SET);
#define Led2_Off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_13, GPIO_PIN_RESET);
#define Camer1_On() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_SET);
#define Camer1_Off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_14, GPIO_PIN_RESET);
#define Camer2_On() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_SET);
#define Camer2_Off() HAL_GPIO_WritePin(GPIOB, GPIO_PIN_15, GPIO_PIN_RESET);
/* USER CODE END EC */
/* Exported macro ------------------------------------------------------------*/
/* USER CODE BEGIN EM */
typedef enum
{
MODE_DEFAULT = 0,
MODE_SIGLE_START = 1, //单线扫描开启
MODE_SIGLE_STOP, //单线扫描暂停
MODE_SEVEN_START, //7线扫描开启
MODE_SEVEN_STOP, //7线扫描暂停
}SYS_MODE;
typedef enum
{
FALSE = 0,
TRUE,
}BOOL_STATUS;
//存储时间参数
#pragma pack (4)
typedef struct
{
unsigned int total_time_7led; //7线补光灯开启时间
unsigned int total_time_7ledto1; //7线补光灯到激光A的间隔时间
unsigned int total_time_71; //7线激光A开启时间
unsigned int total_time_71to72; //7线激光A到激光B的间隔时间
unsigned int total_time_72; //7线激光B开启时间
unsigned int total_time_72toled; //7线激光B到补光灯开启时间
}Store_Timer_7;
typedef struct
{
unsigned int total_time_1led; //单线补光灯开启时间
unsigned int total_time_1ledto1; //单线补光灯到激光开启间隔时间
unsigned int total_time_1; //单线激光开启时间
unsigned int total_time_1toled; //单线激光到补光灯开启时间
}Store_Timer_1;
#pragma pack ()
typedef struct
{
unsigned char store_flag; //参数保存过的标志
Store_Timer_7 store_timer7; //7线需要存储的时间
Store_Timer_1 store_timer1; //单线需要存储的时间
}Store_Info;
typedef struct
{
unsigned char start_up;
unsigned int count;
unsigned char over_time;
}Time_Typedef;
//7线扫描各时间间隔
typedef struct
{
Time_Typedef time_led_7; //7线补光灯
Time_Typedef time_7ledto1;
Time_Typedef time_71;
Time_Typedef time_71to72;
Time_Typedef time_72;
Time_Typedef time_72toled;
}Scan_Timer_7;
//单线扫描各时间间隔
typedef struct
{
Time_Typedef time_led_1; //1线补光灯
Time_Typedef time_ledto1;
Time_Typedef time_1;
Time_Typedef time_1toled;
}Scan_Timer_1;
typedef struct
{
Scan_Timer_7 scan_timer7;
Scan_Timer_1 scan_timer1;
}Scan_Timer;
//系统运行参数
typedef struct
{
unsigned char run_mode;
unsigned char scan_start_7; //7线启动扫描标志,1--启动,0--暂停
unsigned char camer_flag_71; //7线激光A相机抓图使能
unsigned char camer_flag_72; //7线激光B相机抓图使能
unsigned char camer_flag_7led; //7线补光灯相机抓图使能
unsigned char scan_start_1; //单线启动扫描标志
unsigned char camer_flag_1; //单线激光相机抓图使能
unsigned char camer_flag_1led; //单线补光灯相机抓图使能
unsigned char cmd_connect_status_flag; //连接状态
unsigned char cmd_set_timer1_flag; //设置单线时间间隔的标志
unsigned char cmd_get_timer1_flag; //获取单线时间间隔的标志
unsigned char cmd_set_timer7_flag; //设置7线时间间隔的标志
unsigned char cmd_get_timer7_flag; //获取7线时间间隔的标志
unsigned char cmd_set_seven_flag; //7线循环扫描开启的标志
unsigned char cmd_set_seven_one_flag; //7线一次扫描开启的标志
unsigned char cmd_set_sigle_flag; //单线循环扫描开启的标志
unsigned char cmd_set_sigle_one_flag; //单线一次扫描开启的标志
unsigned char cmd_seven_ab_flag; //收到7线扫描激光AB同时开启命令
unsigned char cmd_seven_ab_one_flag; //收到7线扫描激光AB运行一次命令
unsigned char cmd_holdon_flag; //收到扫描暂停命令
unsigned char cmd_button_mode; //收到按键按一次扫描一次命令
unsigned char seven_one_flag; //7线扫描只运行一次
unsigned char sigle_one_flag; //单线线扫描只运行一次
unsigned char seven_ab_one_flag; //7线扫描AB只运行一次
unsigned char sys_holdon_flag; //扫描暂停
unsigned char run_seven_ab; //7线扫描激光AB同时开启
unsigned char button_mode; //1:收到按键按一次扫描一次命令后置位
unsigned char button_sigle_flag; //1:检测到单线按钮按下
unsigned char button_seven_flag; //1:检测到七线按钮按下
}Sys_Info;
//按键事件
typedef struct
{
unsigned char sigle_num;
unsigned short sigle_count;
unsigned char sigle_tmr_out;
unsigned char seven_num;
unsigned short seven_count;
unsigned char seven_tmr_out;
}Timer_Key;