# 通信参数配置 本说明仅用于协议模式下 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 ```text AT+SETFDCAN=<仲裁段波特率>,<数据段波特率> ``` 第一个参数同时用于经典 CAN 和 CAN FD 仲裁段;第二个参数只用于 CAN FD 数据段。 | 参数 | 支持值 | | --- | --- | | 仲裁段 | `1000000`、`500000`、`250000`、`125000`、`100000` | | 数据段 | `2000000`、`3000000`、`4000000`、`5000000` | 上述四档 CAN FD 数据段波特率为精确位时序,误差为 0%。 例如,设置经典 CAN/CAN FD 仲裁段为 1 Mbps、CAN FD 数据段为 5 Mbps: ```text AT+SETFDCAN=1000000,5000000 ``` 成功返回: ```text OK ``` 查询当前值: ```text AT+SETFDCAN? ``` 示例返回: ```text FDCAN:1000000,5000000 ``` 设置会同时应用到当前 MCU 的两路 CAN/CAN FD,并保存到 Flash。 重复发送与已保存配置相同的 `AT+SETFDCAN=` 命令不会再次写入 Flash。 如果对应 FDCAN 因关闭 gs_usb/SocketCAN 接口而停止,该命令会恢复停止的 live FDCAN,便于继续使用管理口协议模式或 SPI 协议模式;已经正常运行的 FDCAN 不会被重复初始化。 ## 设置 RS485 ```text AT+SETRS485=<波特率>,<停止位>,<校验>,<数据位> ``` | 参数 | 支持值 | | --- | --- | | 波特率 | `2400`~`4000000`,`5000000`,`6000000`,`7500000` | | 停止位 | `1` 或 `2` | | 校验 | `0` 无校验;`1` 奇校验;`2` 偶校验 | | 数据位 | `8` 或 `9` | 例如,设置为宇树电机常用的 4 Mbps、8-N-1: ```text AT+SETRS485=4000000,1,0,8 ``` 查询当前值: ```text AT+SETRS485? ``` 示例返回: ```text RS485:4000000,1,0,8 ``` 该命令在管理口使用,设置会同时应用到当前 MCU 的两路 RS485,并保存到 Flash。 `AT+SETRS485?` 查询的是协议模式保存的参数。独立 RS485 透传串口被Linux操作系统枚举时可能会触发物理串口配置,因此它曾以其他波特率打开时,当前运行中的UART 参数可能与查询结果不同。建议协议模式下打开管理口后发送明确的`AT+SETRS485=` 进行设置。 ## 恢复通信默认值 ```text AT+CFGERASE ``` 成功后返回 `OK`,并恢复出厂默认通信参数。该命令会清除已保存的 CAN/CAN FD、RS485、SPI 模式、RAW 目标和上电自动执行设置,但不会删除离线批次内容。 如果多次修改配置后返回 `ERR,5`,也可以使用该命令清理通信配置区,然后重新设置需要的参数。 ## 常见问题 | 现象 | 处理方法 | | --- | --- | | 设置命令没有返回 | 确认使用文本发送,并以 `CRLF` 结尾 | | 设置返回 `ERR,1` 或 `ERR,3` | 检查参数数量和取值范围 | | 设置返回 `ERR,5` | 配置区空间不足;执行 `AT+CFGERASE` 后重新设置 | ## 附录:设置 SPI 模式 ```text 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,再使用新的固定长度通信。 建议应用程序在每次启动时向两个管理口显式发送命令设置。