opencpu

Z 2.0 sdk


GPIO接口

GPIO接口
/*锁接口*/
#define GPIO_LOCK1_CTL (32+21) //PB21   1开锁;0关锁
#define GPIO_LOCK1_STAT (32+30) //PB30  1锁已经锁上 0 没锁
#define GPIO_DOOR1_STAT (32+31) //PB31  1门已经关上 0 没关

/系统指示灯/
#define GPIO_PLTLED (32+27) // PB27 系统指示灯 1亮 0灭

/市电/电池检测/
#define POWER_DETECT_PIN (32+29) // PB29   0电池 1市电

4G模组上下电控制
#define LTE_PWRCTL (11) // PA11 持续输出 1秒 1KHZ 方波 下电,其他上电

锁上下电控制
#define LOCK_PWRCTL (14) // PA14 持续输出 1秒 1KHZ 方波 下电,其他上电

整机电源控制主动断电
#define DEVICE_PWRCTL (32+18) // PB18 持续输出 1秒 1KHZ 方波 下电,其他上电
锁插入检测 这里设备使用了adc,检测示例代码如下
static int adc_init()
{
    int ret = -1;
    int vol_n = 0, tmp_v = 0;
    g_adc_fd = open("/dev/jz_adc_aux_0", O_RDONLY);
    if(g_adc_fd < 0) {
        printf("—> sample_adc:open error <—!\n");
        ret = -1;
        return ret;
    }
    vol_n = 1800;
    ret = ioctl(g_adc_fd, ADC_SET_VREF, &vol_n);
    if(ret){
        printf("—> Failed to set reference voltage! <—\n");
        return -1;
    }

    /* enable adc */
    ret = ioctl(g_adc_fd, ADC_ENABLE);
    read(g_adc_fd, &tmp_v , sizeof(int));
    if(value > 100)
    {
        printf(“lock is on line tmp_v = %d\n”, tmp_v );
    }
    else
    {
        printf(“lock is off line tmp_v = %d\n”, tmp_v );
    }
    return 0;
}

页面列表

ITEM_HTML