实例1:设置GPIO为输入或输出完成读取状态和驱动LED功能。 下面这个电路使用3个gpio 用于读取拔码开关的设置和驱动3个LED流水灯显示。拔码开关在开机时需要读取一次。使用过程中不需要使用。如果单独使用3个GPIO口很浪费。 电路功能是,如果GPIO设置为输入,则可读入拔码开关设置,设置为输出则能分别点亮3个LED灯。 拔码开关使用优先编码器将输入6个位置转换成3个编码输出。(历史原因,这个编码器电路的设计得不好。),LED使用非门驱动。 当FLOWLED设置为输入时,可以读入A0 A1 A2 的状态。当FLOWLED设置为输出时可以分别点亮或关闭3个LED灯。 当设置成输入读拔码开关时,LED实际上也会受影响。所以实际使用时会短读。让LED灯来不及反应。 实例2:使用一条AD线路,实现检测电池温度和充电完成功能。 下面这个是锂电池充电电路,复用电池测温信号。实现电池测温和检测电池充满功能。电池温度由电池包内部的NTC热敏电阻感应。在电池充电过程中,指示电池充电的信号CHGOK为低,当电池充满后,CHGOK变高。电路中将一个NPN三极管与NTC电阻并联。在充电过程中三极管截止,些时输出的是电池温度信号。当电池充满时,三极管导通,输出变为0表示电池充满。 实例3:设置GPIO为OD输出,可以使用一条线读取光耦输出,写入芯片控制信号。 下面这个设计使用一条线,输入时读取光耦输出状态。作为输出时用于操作称重传感器芯片HX720D的时钟信号。HX720D在读取数据前后,需要保持时钟信号为低。设计了一个比较器电路。当设置为输入时,无论光耦输出为高或低,时钟信号驱动为低。当设置为输出时,输出为低时,时钟信号驱动为高。输出为高时驱动为低。读写互不干扰。