HL-PDJ-1/app/Inc/IoControl.h

109 lines
3.2 KiB
C
Raw Normal View History

2025-08-19 09:49:41 +08:00
/********************************************************************
Copyright (c) 2021 Xiangyu Medical Co.<EFBFBD><EFBFBD>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<6F><67>Ҫ<EFBFBD><D2AA><EFBFBD>õ<EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
#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)
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define KEY_PWR_SWITICH ( 16 )
/* <20><>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */
#define KEY_POWER ( 13 )
/* ָʾ<D6B8><CABE> */
#define LED_YELLOW ( 11 )
#define LED_WHITE ( 12 )
/* DAC <20><><EFBFBD><EFBFBD>*/
#define PWM_DAC_GPIO ( 26 )
/* <20><><EFBFBD><EFBFBD>оƬ<D0BE><C6AC><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>͵<EFBFBD>ƽ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD>У<EFBFBD><D0A3>ߵ<EFBFBD>ƽ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻ<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD> */
#define CHG_MANAGER_EN ( 15 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>EN<45><4E><EFBFBD>ţ<EFBFBD><C5A3>ڲ<EFBFBD>200K<30><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20>ߵ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>͵<EFBFBD>ƽ<EFBFBD><C6BD>Low<6F><77><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>գ<EFBFBD>Floating<6E><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD>
#define CHG_MANAGER_PPR ( 23 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>PPR<50><52><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>©<EFBFBD><C2A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD>3.0V<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD>
#define CHG_MANAGER_CHG ( 14 ) //<2F><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD>ţ<EFBFBD><C5A3>͵<EFBFBD>ƽ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>ߵ<EFBFBD>ƽ
#define STIM_RMS_RELAY_PIN ( 27 ) // <20><><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD><C9BC>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define STIM_RELAY_PIN ( 28 ) //<2F>̼<EFBFBD><CCBC>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SAMPLE_POWER_PIN ( 20 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define BOOST_DISCHARGE_PIN ( 18 ) //boost<73><74>ѹ<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>
#define BASE_WAVE_06_PIN ( 6 ) //<2F>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6
#define BASE_WAVE_07_PIN ( 7 ) //<2F>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7
#define BASE_WAVE_08_PIN ( 8 ) //<2F>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ο<EFBFBD><CEBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8
#define BOOST_VOLTAGE_CONTROL_PIN ( 25 ) //boost<73><74>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* Public typedef ------------------------------------------------*/
//<2F><EFBFBD><E8B1B8><EFBFBD>ػ<EFBFBD>״̬
typedef enum
{
POWER_OPEN = 0,
POWER_CLOSE
}DeviceStateInfo_e;
// <20><><EFBFBD><EFBFBD>״̬
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 ***************************/