微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ZEPHYR RTOS 配置 GPIO 引脚

如何解决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);
        }
    ...
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。