带有 VSCode 的 NRF52840 板中的 UART1(nrf 连接 sdk)

问题描述 投票:0回答:1

大家~ 我正在使用 NRF52840 板从 RYS8330 获取位置数据(纬度、经度、卫星)。 目前uart0用于另一个功能。所以我应该将 uart1 与其他引脚一起使用。 如何初始化uart1并分配引脚?

我在zephyr库中搜索了很多样本。但我找不到任何与我的目的类似的东西。

uart firmware nrf52840
1个回答
0
投票

我推荐有关 nRF Connect SDK 的DevAcademy 指南。简而言之,您可以使用 pinctrl 更改驱动程序的引脚。

编辑:因为我应该解释如何而不是链接。 文档位于上面的pinctrl 链接中。有关 pinctrl 的示例,请参阅 https://github.com/nrfconnect/sdk-nrf/blob/main/samples/zigbee/ncp/boards/nrf52833dk_nrf52833.overlay,如下所示:

*
 * Copyright (c) 2021-2023 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
 */

&uart1 {
    status = "okay";
    pinctrl-0 = <&uart1_default_alt>;
    pinctrl-1 = <&uart1_sleep_alt>;
    pinctrl-names = "default", "sleep";
};

&uart0 {
    pinctrl-0 = <&uart0_default_alt>;
    pinctrl-1 = <&uart0_sleep_alt>;
    pinctrl-names = "default", "sleep";
};

&zephyr_udc0 {
    cdc_acm_uart0: cdc_acm_uart0 {
        compatible = "zephyr,cdc-acm-uart";
    };
};

&pinctrl {
    uart1_default_alt: uart1_default_alt {
        group1 {
            psels = <NRF_PSEL(UART_TX, 0, 6)>,
                <NRF_PSEL(UART_RX, 0, 8)>,
                <NRF_PSEL(UART_RTS, 0, 5)>,
                <NRF_PSEL(UART_CTS, 0, 7)>;
        };
    };

    uart1_sleep_alt: uart1_sleep_alt {
        group1 {
            psels = <NRF_PSEL(UART_TX, 0, 6)>,
                <NRF_PSEL(UART_RX, 0, 8)>,
                <NRF_PSEL(UART_RTS, 0, 5)>,
                <NRF_PSEL(UART_CTS, 0, 7)>;
            low-power-enable;
        };
    };

    uart0_default_alt: uart0_default_alt {
        group1 {
            psels = <NRF_PSEL(UART_RX, 1, 1)>,
                <NRF_PSEL(UART_TX, 1, 2)>;
        };
    };

    uart0_sleep_alt: uart0_sleep_alt {
        group1 {
            psels = <NRF_PSEL(UART_RX, 1, 1)>,
                <NRF_PSEL(UART_TX, 1, 2)>;
            low-power-enable;
        };
    };

};

/ {
    chosen {
        ncs,zigbee-uart = &uart1;
    };
};
© www.soinside.com 2019 - 2024. All rights reserved.