因此,我try 通过Zephyr在我的RP Pico上使用UTE 1接口,但它不起作用.我的问题是,我不知道如何在设备树中设置UTE 1.UART 0默认为可用,一切正常运行. 我的计划是通过UTE 0与我的计算机通信,显示一些信息并使用它进行调试.到目前为止,这运行良好,没有任何问题.我想使用UTE 1与GPS传感器通信(通信部分工作正常,我用UTE 0try 过).唯一不起作用的是UTE 1的设置.

zephyrproject\zephyr\boards\arm\rpi_pico\rpi_pico-common.dtsi中,UTE 0被定义为:

&uart0 {
    current-speed = <115200>;
    status = "okay";
    pinctrl-0 = <&uart0_default>;
    pinctrl-names = "default";
};

rpi_pico-pinctrl.dtsi

    uart0_default: uart0_default {
        group1 {
            pinmux = <UART0_TX_P0>;
        };
        group2 {
            pinmux = <UART0_RX_P1>;
            input-enable;
        };
    };

但为什么UTE 1没有预定义或更好,如何设置UTE 1以与UTE 0相同的方式使用它?

推荐答案

您只需将其添加到设备树中即可. 感谢@ sweam现在知道,这是明确的启用所缺少的东西.rp 2040定义了uart 1,但在您当前的设备树中,它没有与真正的pin连接,因此未启用.

(状态="好的"或禁用是我知道的启用.)

通过研究Raspiberry Pico的SKU RP 2040: https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf

在部分:1.4.3.GPIO功能 有一个与MPI管脚一起提到的UTE 1.

还提到了使用第二个收件箱时干扰了哪些针.

您可以创建覆盖文件或直接使用"rpi_pico-pincupe.dtsi".

tl;dr:

带有片段:

uart1_default: uart1_default {
    group1 {
        pinmux = <UART1_TX_P4>;
    };
    group2 {
        pinmux = <UART1_RX_P5>;
        input-enable;
    };
};

有效的Pin可在文件中找到:rpi-pico-rp2040-pinctl.h 网址:zephyr/include/zephyr/dt-bindings/pinctrl/rpi-pico-rp2040-pinctrl.h

当然,人们还需要这段代码:

&uart1 {
current-speed = <115200>;
status = "okay";
pinctrl-0 = <&uart1_default>;
pinctrl-names = "default";
};

C++相关问答推荐

获取二维数组的最大元素

为什么在函数内部分配内存空间时需要添加符号?

Clang警告称,`ffi_type`与`sizeof`不兼容

如何使用[BTStack]BLE发送大型(>;2kb)信息包

将 struct 传递给函数

SSH会话出现意外状态

一旦运行长度超过2,编译器是否会优化";strnlen(mystring,32)>;2";以停止循环?

如何在POSIX-UEFI中获得输入?

获取前2个连续1比特的索引的有效方法

C堆栈(使用动态数组)realloc内存泄漏问题

C";中的ANN运行时判断失败#2-变量outputLayer;周围的堆栈已损坏.运行后出错

通过对一个大的Malloc内存进行切片来使用Malloc的内存片

CS50 pset 5的皱眉脸正确地处理了大多数基本单词,并且拼写判断不区分大小写.

c程序,让用户输入两类数字,并给出输出用户输入多少个数字

为什么会出现此错误?二进制表达式的操作数无效

在git补丁中自动添加C的宏

C struct 中的冒泡排序

cs50拼写器分配中的无限循环

在链表中插入一个值

全局变量 y0 与 mathlib 冲突,无法编译最小的 C 代码