diff --git a/src/machine/machine_stm32f103xx.go b/src/machine/machine_stm32f103xx.go index 552e540b..44fa8742 100644 --- a/src/machine/machine_stm32f103xx.go +++ b/src/machine/machine_stm32f103xx.go @@ -99,6 +99,14 @@ func (p Pin) Set(high bool) { } } +// Get returns the current value of a GPIO pin. +func (p Pin) Get() bool { + port := p.getPort() + pin := uint8(p) % 16 + val := port.IDR.Get() & (1 << pin) + return (val > 0) +} + // UART type UART struct { Buffer *RingBuffer