GPIO commands allow control of the function and direction of the GPIOs.
- get gp u - List GPIO usage, direction and initialization
- set gp u - Set the format of the GPIO usage list
- gfu - Configure GPIO function
- gdi - Set GPIO direction for a GPIO functioning as
- gdis - Set
stdiofunction and GPIO direction for multiple GPIOs
- gge - Get GPIO value for a GPIO functioning as
- gges - Get multiple values for GPIOs functioning as
- gse - Set GPIO value for a GPIO functioning as
- gses - Set multiple values for GPIOs functioning as
Typically, particular GPIOs are hard-wired to components such as LEDs and buttons. Other GPIOs are configurable for input and output.
GPIOs can be used for special system functions, including (but not limited to):
- assigning a LED as a BLE connection indicator
- selecting between serial bus modes: COMMAND or STREAM
- blink on BLE activity
- general standard IO function
GPIO Functions and Pins
In the following examples, the BGX EXP evaluation board is used to demonstrate GPIO functions.
Viewing GPIO Usage
To see the current GPIO usage, read the GPIO usage variable. The default BGX EXP usage is:
> get gp u ! # Description # 0 none # 1 none # 2 none # 3 none # 4 none # 5 none # 6 none # 7 none
Setting GPIO Function
Use the GPIO function command to set a single GPIO to a specific function.
After using gfu, it may be necessary to save then reboot depending on the alternate function (some functions are only configured at boot up).
Use gdis command to set
stdio function and direction
for multiple GPIOs. See Setting and Getting Multiple STDIO GPIO
Available functions are listed in the gfu command documentation.
The gfu command fails if the GPIO is already configured
for an alternate function. Disable the alternate function first by using
gfu <GPIO#> none.
For example, to enable GPIO 5 to operate as
> gfu 5 stdio Success
To use LED0 to indicate when stream mode is on:
> gfu 0 str_activity_led Success
Setting and Getting a Single STDIO GPIO Value
To set and get the value of a single GPIO, use the gse and gge commands.
Note that to set a GPIO, the GPIO must have
stdio function and the output
direction. To get the value, the GPIO must have
stdio function. See
Setting GPIO Function.
For example, set and clear GPIO 1 to turn LED1 on and off:
> gfu 1 stdio Success > gdi 1 olo Success > gge 1 0 > gse 1 1 Success > gge 1 1
Setting and Getting Multiple STDIO GPIO Values
To set and get multiple
stdio GPIO values, use the
gses and gges commands.
For example, set GPIO 0 (LED0) and GPIO 1 (LED1) as
stdio open-drain outputs
with no pull-ups, and GPIO 2 (BTN0) and GPIO 3 (BTN1) as
stdio inputs with
> gdis 4400XXXX Success
With no buttons pressed, get the values of the
> gges 1111XXXX
Now turn the LED0 on:
> gses 0111XXXX Success
Press both buttons and get the values of the
> gges 0100XXXX
For versions previous to
1.1.1229.0, calling 'gdis' with any value other than
X for a pin configured as
none results in an error. The pin must
first be configured as
stdio with the gfu command. The configuration
sequence in the Setting and Getting Multiple STDIO GPIO
Values section must be:
> gfu 0 stdio Success > gfu 1 stdio Success > gfu 2 stdio Success > gfu 3 stdio Success > gdis 4400XXXX Success