add GPIO_WRITE, fix bug of GPIO_READ