mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
75 lines
2.9 KiB
Markdown
75 lines
2.9 KiB
Markdown
---
|
|
pageClass: is-wide-page
|
|
---
|
|
|
|
# GpioConfig (UORB message)
|
|
|
|
GPIO configuration.
|
|
|
|
**TOPICS:** gpio_config
|
|
|
|
## Fields
|
|
|
|
| Name | Type | Unit [Frame] | Range/Enum | Description |
|
|
| --------- | -------- | ------------ | ---------- | -------------------------------------- |
|
|
| timestamp | `uint64` | | | time since system start (microseconds) |
|
|
| device_id | `uint32` | | | Device id |
|
|
| mask | `uint32` | | | Pin mask |
|
|
| state | `uint32` | | | Initial pin output state |
|
|
| config | `uint32` | | |
|
|
|
|
## Constants
|
|
|
|
| Name | Type | Value | Description |
|
|
| ------------------------------------------------------------- | -------- | ----- | ----------- |
|
|
| <a id="#INPUT"></a> INPUT | `uint32` | 0 | 0x0000 |
|
|
| <a id="#OUTPUT"></a> OUTPUT | `uint32` | 1 | 0x0001 |
|
|
| <a id="#PULLUP"></a> PULLUP | `uint32` | 16 | 0x0010 |
|
|
| <a id="#PULLDOWN"></a> PULLDOWN | `uint32` | 32 | 0x0020 |
|
|
| <a id="#OPENDRAIN"></a> OPENDRAIN | `uint32` | 256 | 0x0100 |
|
|
| <a id="#INPUT_FLOATING"></a> INPUT_FLOATING | `uint32` | 0 | 0x0000 |
|
|
| <a id="#INPUT_PULLUP"></a> INPUT_PULLUP | `uint32` | 16 | 0x0010 |
|
|
| <a id="#INPUT_PULLDOWN"></a> INPUT_PULLDOWN | `uint32` | 32 | 0x0020 |
|
|
| <a id="#OUTPUT_PUSHPULL"></a> OUTPUT_PUSHPULL | `uint32` | 0 | 0x0000 |
|
|
| <a id="#OUTPUT_OPENDRAIN"></a> OUTPUT_OPENDRAIN | `uint32` | 256 | 0x0100 |
|
|
| <a id="#OUTPUT_OPENDRAIN_PULLUP"></a> OUTPUT_OPENDRAIN_PULLUP | `uint32` | 272 | 0x0110 |
|
|
|
|
## Source Message
|
|
|
|
[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/GpioConfig.msg)
|
|
|
|
::: details 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
|
|
```
|
|
|
|
:::
|