How to Resolve GPIO Pin Configuration Failures for DHT22 Sensor on AVR32UC with Zephyr OS?

Hey guys, still on my DHT22 Sensor Integration. who knows how I can configure GPIO pins on the AVR32UC for a DHT22 sensor using Zephyr OS, and how can I resolve GPIO pin configuration failures, which prompts this error message: Failed to configure GPIO pin. I have been able to define the GPIO pin for the DHT22 sensor and attempt to configure the GPIO pin as input yet the error. This is my code snippet:
#include <zephyr.h>
#include <device.h>
#include <drivers/gpio.h>

#define DHT22_PIN 2
#define GPIO_PORT DT_LABEL(DT_NODELABEL(gpio0))

const struct device *gpio_dev;

void main(void)
{
gpio_dev = device_get_binding(GPIO_PORT);
if (!gpio_dev) {
printk("Failed to bind GPIO device\n");
return;
}

if (gpio_pin_configure(gpio_dev, DHT22_PIN, GPIO_INPUT) < 0) {
printk("Failed to configure GPIO pin\n");
}
}
#include <zephyr.h>
#include <device.h>
#include <drivers/gpio.h>

#define DHT22_PIN 2
#define GPIO_PORT DT_LABEL(DT_NODELABEL(gpio0))

const struct device *gpio_dev;

void main(void)
{
gpio_dev = device_get_binding(GPIO_PORT);
if (!gpio_dev) {
printk("Failed to bind GPIO device\n");
return;
}

if (gpio_pin_configure(gpio_dev, DHT22_PIN, GPIO_INPUT) < 0) {
printk("Failed to configure GPIO pin\n");
}
}
The GPIO pin should be correctly configured for the DHT22 sensor, allowing for proper sensor communication, If the implementation is successful.
4 Replies
Dark AI
Dark AI2mo ago
Hi @Dtynin , your code is great. however, there are some checks you would want to do to resolve the issue. Ensure that your device tree file (DTS) properly defines the GPIO controller and the pin. The DT_NODELABEL(gpio0) should match the label in your DTS file and also make sure the pinmux settings for the pin are correctly configured in your board's pinmux file. Could you provide more details about your DTS file and the board configuration?
Dtynin
Dtynin2mo ago
Thanks @Dark AI this is my DTS configuration:
&gpio0 {
status = "okay";
dht22_pin: dht22_pin {
gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;

};
};
&gpio0 {
status = "okay";
dht22_pin: dht22_pin {
gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;

};
};
I'm not sure about the pinmux settings. Could you guide me on what I need to check or modify?
Dark AI
Dark AI2mo ago
@Dtynin Your DTS configuration seems correct, to focus on the pinmux settings. First, locate your board's pinmux configuration file, and ensure the pin is set up correctly for GPIO.
Dark AI
Dark AI2mo ago
Then Verify that the pinmux node is included in your board's DTS file. You may also need to initialize the pinmux settings in your application code, ensuring they are applied before configuring the GPIO. Confirm if these settings are present or make these adjustments and test again.
Want results from more Discord servers?
Add your server