main.h

#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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值