opencpu

Z 2.0 sdk


GPIO接口

<h5>GPIO接口</h5> <pre><code>/*锁接口*/ #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 方波 下电,其他上电 </code></pre> <h5>锁插入检测 这里设备使用了adc,检测示例代码如下</h5> <pre><code>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 &lt; 0) { printf("—&gt; sample_adc:open error &lt;—!\n"); ret = -1; return ret; } vol_n = 1800; ret = ioctl(g_adc_fd, ADC_SET_VREF, &amp;vol_n); if(ret){ printf("—&gt; Failed to set reference voltage! &lt;—\n"); return -1; } /* enable adc */ ret = ioctl(g_adc_fd, ADC_ENABLE); read(g_adc_fd, &amp;tmp_v , sizeof(int)); if(value &gt; 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; }</code></pre>

页面列表

ITEM_HTML