0

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

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

我想给我们板ardunio r3 connector.dtsi提供的 arduino 引脚映射 code

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

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

任何解决此问题的帮助表示赞赏。

4

1 回答 1

0

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

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

  1. 移动到文件夹 /zephyr/dts/arm/silabs/efr32mg.dtsi 中的 <board.dsti> 插入您定义的 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);
        }
    ...
    
于 2021-07-16T07:43:18.233 回答