socketcan调试

(一下每步只做一次,多个只选一个即可)

0、ifconfig can0 down

ip link set can0 type can restart-ms 100

1、设置波特率

ip link set can0 up type can bitrate 500000

echo 500000 > /sys/class/net/can0/can_bittiming/bitrate

2、ifconfig can0 up

ip link set can0 up type can

ip -details link show can0

3、cansend can0 123#11223344556677

./cansend can0 -e 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88

发送默认ID为0x1的can标准帧,数据为0x11 22 33 44 55 66 77 88

每次最大8个byte

./cansend can0 -i 0x800 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88 -e

-e 表示扩展帧,CAN_ID最大29bit,标准帧CAN_ID最大11bit

-i表示CAN_ID

4、./candump can0

candump can0

5、静默模式

CAN_Mode_Silent:静默模式,简单理解收到数据不发送应答信号。

在静默模式下,总线必须要有2个或2个以上的节点,才能收到数据,个 人理解有应答信stm32的can内核才认为只是一个完整的数据

静默模式测试,需要先ack一次,才能继续下面的工作。(测试方法,板子上1050的pin8,先接地,启动收发,然后上拉,发送信息失败。如果先上拉,则收发都失败。)

6、多节点模式测试,a、正常,多节点可以直接进入silent模式,只收不发。b、多节点出错怎么办?

7. cansend can0 -i 0x02 0x11 0x12 --loop=20

--loop 表示发送20个包


你可能感兴趣的:(socketcan调试)