大家~ 我正在使用 NRF52840 板从 RYS8330 获取位置数据(纬度、经度、卫星)。 目前uart0用于另一个功能。所以我应该将 uart1 与其他引脚一起使用。 如何初始化uart1并分配引脚?
我在zephyr库中搜索了很多样本。但我找不到任何与我的目的类似的东西。
我推荐有关 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;
};
};