DASH board pins with 3.3V when DigitalWrite()


#1

My objective is to be able to read and write to an 8-bit line simultaneously (no lag). There’s no problem in reading the 8-bit data using _GPIOD_PDIR & 0xFF; that corresponds to Dash pins: R16, L05, L06, L08, R04, L07, R05, R03
However, I can’t get an output of 3.3V by digitalWrite in pins L05, L07 and R05.
Below is the digital and analog read from the pins:

=========
R16: 1
L05: 0
L06: 1
L08: 1
R04: 1
L07: 0
R05: 0
R03: 1
R16: 4294967295
L05: 946
L06: 4294967295
L08: 4294967295
R04: 4294967295
L07: 1019
R05: 1023
R03: 4294967295


#2

I revisit the code, and did a couple of test scenario:

This works:

  1. Set all pins to OUTPUT
  2. Set al pins to digitalWrite HIGH
  3. Execute digitalRead (all outputs are 1)
  4. Voltmeter shows all pins are at ~3.3.V

This creates mixed outputs:

  1. Set all pins to OUTPUT
  2. Set al pins to digitalWrite HIGH
  3. Execute digitalRead — (all outputs are 1)
  4. Execute analogRead — (3 pins shows lower analog Read)
  5. Next loop: digitalRead shows those 3 pins are 0
  6. Voltmeter shows those 3 pins are way below 1 Volt

I coded the analogRead just to see the pins’ voltage without using a voltmeter. But I don’t expect analogRead will affect the pin’s voltage as set by the digitalWrite(pin, HIGH), which is as if the digitalWrite command was overwritten.

Is this not an ‘issue’ and the behavior is expected because L05, L07, and R05 are used as CTS and RX by SPI/UART?