ZEPHYR RTOS 配置 GPIO 引脚

问题描述

嗨,我想将自定义 GPIO 引脚配置为输出,以控制运行 Zephyr RTOS 的 STM32 H743Zi 板上的电机。

板的 dts 文件可以在 folder 或单独的文件 nucleo h743zi.dts code 中找到。

我要我们板子提供的arduino pin映射ardunio r3 connector.dtsi code

到目前为止我开发的覆盖文件是follows code。我想将 D0 引脚(根据 arduino 连接器 dtsi 文件)配置为 GPIO 引脚来控制电机。

但是,我无法配置引脚,如果引脚打开,我也没有收到高电平信号。

对解决此问题的任何帮助表示感谢。

解决方法

您可以参考此链接中的答案: https://github.com/zephyrproject-rtos/zephyr/discussions/35932

就我而言,我使用 Thunderboard Sensor 2 和我的解决方案如下:

  1. 移动到文件夹 /zephyr/dts/arm/silabs/efr32mg.dtsi 中的 插入要使用的定义 GPIO:

     ...
     / {
     zephyr,user {
         signal-gpios = <&gpioa 8 GPIO_ACTIVE_HIGH>;
     };
     ...
    

在这里,我使用我的板端口 A 和引脚 8 作为原理图

  1. 保存文件后,打开项目的主文件并插入如下内容:

     #define ZEPHYR_USER_NODE DT_PATH(zephyr_user)
     ...
     void main(void)
    {
     const struct gpio_dt_spec signal = 
     GPIO_DT_SPEC_GET(ZEPHYR_USER_NODE,signal_gpios);
     /* Configure the pin */
     gpio_pin_configure_dt(&signal,GPIO_OUTPUT_INACTIVE);
     ...
        while(1){
         /* Toggle the pin PA8*/
         gpio_pin_toggle(signal.port,signal.pin);
         k_msleep(SLEEP_TIME_MS);
        }
    ...
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...