Ask a New Question

Get Supports

If you need one-on-one support for confidential technical issues with your project, please click on "Contact Us" below.

GPIO_16-31 control GR551x


2022-09-05 15:34

We use the GR5515IGND chip with our custom (!) board, and at the first stages I ran into difficulties.

To control the GPIO, logic that isn't very clear (for me) is used. In the libs, GPIO0-15 numbers are fixed as some constants (gr55xx_hal_gpio.h: 0x0400U for Pin 10 for example), but there is nothing about GPIO16-31 being physically present.

For our project, we need access to many pins (as GPIO/SPI roles and so on), for example, 29th as GPIO. I found an example in which this pin is controlled - gpio_output_input. However, there, to control pin 29, the constant GPIO_PIN_13 is used. Please explain why so? How to implement access to all 31m GPOS of the chip that we are using?

1 Favorite

1 Like

1 Answers


2022-09-17 15:41


GR5515IGND chip has 2 groups of GPIO, each group has 16 GPIOs.

The corresponding IO pins of GPIO0 are GPIO_0 - GPIO_15

The corresponding IO pins of GPIO1 are GPIO_16 - GPIO_31

When using the API, you need to pay attention to the following points:

hal_gpio_read_pin(GPIO0, GPIO_PIN_0); Read the state of GPIO0

hal_gpio_read_pin(GPIO0, GPIO_PIN_1); Read the state of GPIO1


hal_gpio_read_pin(GPIO1, GPIO_PIN_0); Read the state of GPIO16

hal_gpio_read_pin(GPIO1, GPIO_PIN_1); Read the state of GPIO17


1 Comment

1 Like

0 Favorites

Your comment

You can answer questions after logging in, please or register

Your Voice Matters
Contact Sales

Scan to follow

Open WeChat, use "Scan" to follow.