通信参数配置

本说明仅用于协议模式下 CAN、CAN FD 和 RS485 设备的通信参数配置。
透传模式下,无需单独设置,RS485 使用打开 RS485 串口时选择的波特率参数,SocketCAN 使用打开 CAN 网络接口时设置的参数。

接入方式

配置位置

重新上电后

USB 管理串口

通过管理口发送 AT+ 命令

已保存参数继续生效

接入开发板USB后,在Windows下显示2个串口 SANPO Studio Management Port,分别对应两个STM32 MCU,STM32(1)控制CAN-1/2和RS485-1/2,STM32(2)控制CAN-3/4和RS485-3/4。

发送 AT+ 命令时使用文本模式,并把发送结束符设置为 CRLF。不要把字符 \r\n 当作普通文本发送。

出厂默认值

项目

默认值

经典 CAN

1 Mbps

CAN FD 仲裁段

1 Mbps

CAN FD 数据段

5 Mbps

RS485

4 Mbps、1 个停止位、无校验、8 个数据位

SPI

SHORT,23 字节

设置 CAN 和 CAN FD

AT+SETFDCAN=<仲裁段波特率>,<数据段波特率>

第一个参数同时用于经典 CAN 和 CAN FD 仲裁段;第二个参数只用于 CAN FD 数据段。

参数

支持值

仲裁段

1000000500000250000125000100000

数据段

2000000300000040000005000000

上述四档 CAN FD 数据段波特率为精确位时序,误差为 0%。

例如,设置经典 CAN/CAN FD 仲裁段为 1 Mbps、CAN FD 数据段为 5 Mbps:

AT+SETFDCAN=1000000,5000000

成功返回:

OK

查询当前值:

AT+SETFDCAN?

示例返回:

FDCAN:1000000,5000000

设置会同时应用到当前 MCU 的两路 CAN/CAN FD,并保存到 Flash。

重复发送与已保存配置相同的 AT+SETFDCAN= 命令不会再次写入 Flash。 如果对应 FDCAN 因关闭 gs_usb/SocketCAN 接口而停止,该命令会恢复停止的 live FDCAN,便于继续使用管理口协议模式或 SPI 协议模式;已经正常运行的 FDCAN 不会被重复初始化。

设置 RS485

AT+SETRS485=<波特率>,<停止位>,<校验>,<数据位>

参数

支持值

波特率

24004000000,5000000,6000000,7500000

停止位

12

校验

0 无校验;1 奇校验;2 偶校验

数据位

89

例如,设置为宇树电机常用的 4 Mbps、8-N-1:

AT+SETRS485=4000000,1,0,8

查询当前值:

AT+SETRS485?

示例返回:

RS485:4000000,1,0,8

该命令在管理口使用,设置会同时应用到当前 MCU 的两路 RS485,并保存到 Flash。

AT+SETRS485? 查询的是协议模式保存的参数。独立 RS485 透传串口被Linux操作系统枚举时可能会触发物理串口配置,因此它曾以其他波特率打开时,当前运行中的UART 参数可能与查询结果不同。建议协议模式下打开管理口后发送明确的AT+SETRS485= 进行设置。

恢复通信默认值

AT+CFGERASE

成功后返回 OK,并恢复出厂默认通信参数。该命令会清除已保存的 CAN/CAN FD、RS485、SPI 模式、RAW 目标和上电自动执行设置,但不会删除离线批次内容。

如果多次修改配置后返回 ERR,5,也可以使用该命令清理通信配置区,然后重新设置需要的参数。

常见问题

现象

处理方法

设置命令没有返回

确认使用文本发送,并以 CRLF 结尾

设置返回 ERR,1ERR,3

检查参数数量和取值范围

设置返回 ERR,5

配置区空间不足;执行 AT+CFGERASE 后重新设置

附录:设置 SPI 模式

AT+SPIMODE?
AT+SPIMODE=SHORT
AT+SPIMODE=LONG

模式

每次 SPI 传输

用途

SHORT

23 字节

经典 CAN;最多 18 字节 RS485 数据

LONG

73 字节

经典 CAN、CAN FD;最多 68 字节 RS485 数据

切换成功后返回 OK。SPI 主机应停止当前传输,等待至少 10 ms,再使用新的固定长度通信。

建议应用程序在每次启动时向两个管理口显式发送命令设置。