GPIO32 of M5core2 is always HIGH and cannot be used as input.



  • GPIO32 of M5core2 is always HIGH and cannot be used as input.

    I want to use MBUS's G32 as input(digitalRead) instead of I2C.
    If I actually do this, it will always be HIGH.

    I thought it was strange, so I checked the status of the G32 with a multitester, and found that 3.3V is always output from the G32.

    M5.begin is set up as follows, and the fourth I2CEnable is false.

    M5.begin(true, true, true, false, kMBusModeInput);

    Also, there is an EXT.I2C PULLUP in the lower right corner of the schematic, do I have to remove this pullup resistor to use it as input? Or is there a way to use it as input in software?

    If anyone knows, please let me know.



  • Hello @rin9147

    no, you can but you don't need to remove the pullup resistor. If you read GPIO32 like this it will report HIGH and when you connect GPIO32 to GND with a wire is should read LOW. Use below code to set GPIO32 as input and do something when it is read LOW.

    pinMode(32, INPUT);
    if(digitalRead(32) == LOW) ...
    

    Thanks
    Felix