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 GPIO direction for multiple GPIOs functioning
- 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 the direction for multiple GPIOs
stdio. 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
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
> gfu 0 stdio Success > gfu 1 stdio Success > gfu 2 stdio Success > gfu 3 stdio Success > 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