# 串行端口映射
本主题介绍如何确定串行端口(UART)、设备(如"ttyS0")和 PX4 启用的特定功能(如 TELEM1、TELEM2、GPS1、RC SBUS、调试控制台)之间的映射关系。
备注
这些指令用于生成飞行控制器文档中的串行端口映射表。例如 Pixhawk 4 > 串行端口映射.
# STMxxyyy 上的 NuttX
本节介绍如何通过检查电路板配置文件来获取 STMxxyyy 架构上 NuttX 版本的映射。该说明使用的是 FMUv5,但同样可以扩展到其他 FMU 版本/NuttX 板。
# default.cmake
default.cmake 列出了许多串行端口映射(搜索文本 "SERIAL_PORTS")。
来自 /boards/px4/fmu-v5/default.cmake (打开新窗口):
SERIAL_PORTS GPS1:/dev/ttyS0 TEL1:/dev/ttyS1 TEL2:/dev/ttyS2 TEL4:/dev/ttyS3
# nsh/defconfig
nsh/defconfig 可以确定定义了哪些端口,是 UART 还是 USART,以及 USART/UART 和设备之间的映射关系。您还可以确定哪个端口用于 串行/调试控制台.
例如,打开电路板的 defconfig 文件: /boards/px4/fmu-v5/nuttx-config/nsh/defconfig (打开新窗口)
搜索文本"ART",直到找到一个类似的部分,其条目格式如下 CONFIG_STM32xx_USARTn=y
(其中 xx
是处理器类型,而 n
是端口号)。例如
CONFIG_STM32F7_UART4=y CONFIG_STM32F7_UART7=y CONFIG_STM32F7_UART8=y CONFIG_STM32F7_USART1=y CONFIG_STM32F7_USART2=y CONFIG_STM32F7_USART3=y CONFIG_STM32F7_USART6=y
这些条目会告诉你定义了哪些端口,以及它们是 UART 还是 USART。
复制上面的部分,并按 "n" 数字重新排序。增加设备编号 ttySn 旁边(基于零),以获取设备到串行端口映射。
ttyS0 CONFIG_STM32F7_USART1=y ttyS1 CONFIG_STM32F7_USART2=y ttyS2 CONFIG_STM32F7_USART3=y ttyS3CONFIG_STM32F7_UART4=y ttyS4 CONFIG_STM32F7_USART6=y ttyS5 CONFIG_STM32F7_UART7=y ttyS6 CONFIG_STM32F7_UART8=y
要获取 DEBUG 控制台映射,我们可以搜索 defconfig 文件 (打开新窗口) 对于 序列号
.下面我们看到控制台位于 UART7 上:
CONFIG_UART7_SERIAL_CONSOLE=y
# board_config.h
对于带有 IO 板的飞行控制器,可从以下接口确定 PX4IO 连接 board_config.h 通过搜索 px4io_serial_device
.
例如 /boards/px4/fmu-v5/src/board_config.h (打开新窗口):
#define PX4IO_SERIAL_DEVICE "/dev/ttyS6" #define PX4IO_SERIAL_TX_GPIO GPIO_UART8_TX #define PX4IO_SERIAL_RX_GPIO GPIO_UART8_RX #define PX4IO_SERIAL_BASE STM32_UART8_BASE
因此,PX4IO 启动了 ttyS6
(我们还可以看到这映射到 UART8,这一点我们在上一节中已经知道)。
# 将所有内容整合在一起
最后的映射是
ttyS0 CONFIG_STM32F7_USART1=y GPS1 ttyS1 CONFIG_STM32F7_USART2=y TEL1 ttyS2 CONFIG_STM32F7_USART3=y TEL2 ttyS3CONFIG_STM32F7_UART4=y TEL4 ttyS4 CONFIG_STM32F7_USART6=y ttyS5 CONFIG_STM32F7_UART7=y DEBUG ttyS6 CONFIG_STM32F7_UART8=y PX4IO
在 飞行控制器文档 得到的表格是
UART | 设备 | 港口 |
---|---|---|
UART1 | /dev/ttyS0 | 全球定位系统 |
USART2 | /dev/ttyS1 | TELEM1(流量控制) |
USART3 | /dev/ttyS2 | TELEM2(流量控制) |
UART4 | /dev/ttyS3 | TELEM4 |
USART6 | /dev/ttyS4 | RC SBUS |
UART7 | /dev/ttyS5 | 调试控制台 |
UART8 | /dev/ttyS6 | PX4IO |
# 其他架构
备注
欢迎投稿!
← NuttX 板移植指南 添加新机身 →