【问题标题】:ZEPHYR RTOS Configuring GPIO PinsZEPHYR RTOS 配置 GPIO 引脚
【发布时间】:2021-07-19 12:49:41
【问题描述】:

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

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

我想给我们板子ardunio r3 connector.dtsicode提供的arduino管脚映射

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

但是,我无法配置引脚,并且如果引脚打开,我也不会收到高电平信号。

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

【问题讨论】:

    标签: embedded-linux gpio device-tree zephyr-rtos


    【解决方案1】:

    您可以参考此链接中的答案: 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);
          }
      ...
      

    【讨论】:

      猜你喜欢
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-18
      • 2021-04-02
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多