通信参数配置
本说明仅用于协议模式下 CAN、CAN FD 和 RS485 设备的通信参数配置。
透传模式下,无需单独设置,RS485 使用打开 RS485 串口时选择的波特率参数,SocketCAN 使用打开 CAN 网络接口时设置的参数。
接入方式 |
配置位置 |
重新上电后 |
|---|---|---|
USB 管理串口 |
通过管理口发送 |
已保存参数继续生效 |
接入开发板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 数据段。
参数 |
支持值 |
|---|---|
仲裁段 |
|
数据段 |
|
上述四档 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=<波特率>,<停止位>,<校验>,<数据位>
参数 |
支持值 |
|---|---|
波特率 |
|
停止位 |
|
校验 |
|
数据位 |
|
例如,设置为宇树电机常用的 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,也可以使用该命令清理通信配置区,然后重新设置需要的参数。
常见问题
现象 |
处理方法 |
|---|---|
设置命令没有返回 |
确认使用文本发送,并以 |
设置返回 |
检查参数数量和取值范围 |
设置返回 |
配置区空间不足;执行 |
附录:设置 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,再使用新的固定长度通信。
建议应用程序在每次启动时向两个管理口显式发送命令设置。