Skip to content

GpioConfig (UORB message)

GPIO configuration.

TOPICS: gpio_config

Fields

NameTypeUnit [Frame]Range/EnumDescription
timestampuint64time since system start (microseconds)
device_iduint32Device id
maskuint32Pin mask
stateuint32Initial pin output state
configuint32

Constants

NameTypeValueDescription
INPUTuint3200x0000
OUTPUTuint3210x0001
PULLUPuint32160x0010
PULLDOWNuint32320x0020
OPENDRAINuint322560x0100
INPUT_FLOATINGuint3200x0000
INPUT_PULLUPuint32160x0010
INPUT_PULLDOWNuint32320x0020
OUTPUT_PUSHPULLuint3200x0000
OUTPUT_OPENDRAINuint322560x0100
OUTPUT_OPENDRAIN_PULLUPuint322720x0110

Source Message

Source file (GitHub)

Click here to see original file
c
# GPIO configuration

uint64 timestamp			# time since system start (microseconds)
uint32 device_id			# Device id

uint32 mask				# Pin mask
uint32 state				# Initial pin output state

# Configuration Mask
# Bit 0-3: Direction: 0=Input, 1=Output
# Bit 4-7: Input Config: 0=Floating, 1=PullUp, 2=PullDown
# Bit 8-12: Output Config: 0=PushPull, 1=OpenDrain
# Bit 13-31: Reserved
uint32 INPUT			= 0	# 0x0000
uint32 OUTPUT			= 1	# 0x0001
uint32 PULLUP			= 16	# 0x0010
uint32 PULLDOWN			= 32	# 0x0020
uint32 OPENDRAIN		= 256	# 0x0100

uint32 INPUT_FLOATING		= 0	# 0x0000
uint32 INPUT_PULLUP		= 16	# 0x0010
uint32 INPUT_PULLDOWN		= 32	# 0x0020

uint32 OUTPUT_PUSHPULL		= 0	# 0x0000
uint32 OUTPUT_OPENDRAIN		= 256	# 0x0100
uint32 OUTPUT_OPENDRAIN_PULLUP	= 272	# 0x0110

uint32 config