这里是我的树莓派和面包板: 以下是我的代码:2018-07-09 15:53:00.123 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button true
2018-07-09 15:53:00.134 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button false
2018-07-09 15:53:00.143 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button true
2018-07-09 15:53:00.154 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button false
2018-07-09 15:53:00.163 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button true
2018-07-09 15:53:00.174 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button false
2018-07-09 15:53:00.183 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button true
2018-07-09 15:53:00.194 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button false
2018-07-09 15:53:00.203 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button true
2018-07-09 15:53:00.214 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button false
2018-07-09 15:53:00.223 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button true
2018-07-09 15:53:00.234 1539-1539/com.pocdetector I/HomeActivity: GPIO changed, button false
val TAG = "HomeActivity"
val BUTTON_PIN_NAME = "BCM21"
lateinit var mButtonGpio: Gpio
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
var pioManager = PeripheralManager.getInstance()
Log.d(TAG, "Available GPIO : " + pioManager.gpioList)
try{
mButtonGpio = pioManager.openGpio(BUTTON_PIN_NAME)
mButtonGpio.setDirection(Gpio.DIRECTION_IN)
mButtonGpio.setEdgeTriggerType(Gpio.EDGE_BOTH)
mButtonGpio.setActiveType(Gpio.ACTIVE_HIGH)
mButtonGpio.registerGpioCallback(mCallback)
}catch (e: IOException){
Log.w(TAG, "Error opening GPIO", e)
}
}
private val mCallback = GpioCallback { gpio ->
try {
Log.i(TAG, "GPIO changed, button " + gpio.value)
} catch (e: IOException) {
Log.w(TAG, "Error reading GPIO")
}
// Return true to keep callback active.
true
}
我尝试使用其他按钮,使用更少或更多的电阻器,但每次结果都相同。也尝试过Android Things示例,但按下按钮时从未触发。