/******************************************************************** Copyright (c) 2021 Xiangyu Medical Co.,Ltd. All rights reserved. FileName : IoControl.h Author : zhangdawei Version : V1.0 Date : Note : History : ********************************************************************/ #ifndef _IOCONTROL_H__ #define _IOCONTROL_H__ /* Includes ------------------------------------------------------*/ #include "nrf52.h" #include "nrf_gpio.h" #include "timer.h" #include "drv_saadc.h" #include "drv_uart.h" #include "nrf_drv_gpiote.h" //Log需要引用的头文件 #include "nrf_log.h" #include "nrf_log_ctrl.h" #include "nrf_log_default_backends.h" #include "nrf_delay.h" /* Public define -------------------------------------------------*/ #define MERGE(Msb,Lsb) ((Msb<<8)|Lsb) /* 按键检测 */ #define KEY_PWR_SWITICH ( 16 ) /* 电源锁定 */ #define KEY_POWER ( 13 ) /* 指示灯 */ #define LED_YELLOW ( 11 ) #define LED_WHITE ( 12 ) /* DAC 引脚*/ #define PWM_DAC_GPIO ( 26 ) /* 充电芯片引脚定义,低电平是充电中,高电平是充电完成或未充电 */ #define CHG_MANAGER_EN ( 15 ) //充电管理芯片的EN引脚,内部200K下拉电阻。 高电平:禁用充电器 ,低电平(Low)或悬空(Floating):启用充电器 #define CHG_MANAGER_PPR ( 23 ) //充电管理芯片的PPR引脚 ,开漏输出,外部上拉3.0V,低电平:输入充电电压正常,高电平:输入充电电压异常 #define CHG_MANAGER_CHG ( 14 ) //充电指示引脚,低电平是充电中,充电结束为高电平 #define STIM_RMS_RELAY_PIN ( 27 ) // 肌电采集继电器控制引脚 #define STIM_RELAY_PIN ( 28 ) //刺激继电器控制引脚 #define SAMPLE_POWER_PIN ( 20 ) //采样电源控制引脚 #define BOOST_DISCHARGE_PIN ( 18 ) //boost升压放电引脚 #define BASE_WAVE_06_PIN ( 6 ) //刺激基础波形控制引脚6 #define BASE_WAVE_07_PIN ( 7 ) //刺激基础波形控制引脚7 #define BASE_WAVE_08_PIN ( 8 ) //刺激基础波形控制引脚8 #define BOOST_VOLTAGE_CONTROL_PIN ( 25 ) //boost电压控制引脚 /* Public typedef ------------------------------------------------*/ //设备开关机状态 typedef enum { POWER_OPEN = 0, POWER_CLOSE }DeviceStateInfo_e; // 充电状态 typedef enum { Uncharged = 0, Charging, ChargeComplete }ChargingStateInfo_e; typedef enum { Bit_RESET = 0, Bit_SET }BitAction; typedef struct{ nrf_drv_gpiote_pin_t KeyPinNumber; bool shineng; }KeyStateInfo_t; /* Public constants ----------------------------------------------*/ /* Public variables ----------------------------------------------*/ extern DeviceStateInfo_e DeviceState; extern ChargingStateInfo_e ChargeState; extern ChargingStateInfo_e ChargeLastState; /* Public function prototypes ------------------------------------*/ void StartAdv(void); void StopAdv(void); void GpioInit(void); void EXIT_KEY_Init(void); void open_acquisition_relay(void); void close_acquisition_relay(void); void LedControl(void); void StimStateInfoStructInit(SchemeData_t SchemeDataIn); void VariableInit(void); void StimOutCtlOpen(void); void StimOutCtlClose(void); void StimReleaseOpen(void); void StimReleaseClose(void); void PreStorageSchemeDataInit(void); void KeyPinHandler(void); void close_stimulate_relay(void); void open_stimulate_relay(void); #endif /*************************** END OF FILE ***************************/