2016-12-14 42 views
0

我有一個目標板,其中有一個由peak驅動程序驅動的can接口。在主機端,我安裝了can-utils。我有一個can電纜,當我插入時,檢測爲/dev/ttyUSBx如何使用slcan與罐頭溝通?

目標板接收candata在500000波特率

所以我執行的主機上,

sudo modprobe can 
sudo modprobe can-raw 
sudo modprobe slcan 

sudo slcand -o -s8 -t hw -S 500000 /dev/ttyUSBx 
sudo ip link set up slcan0 

然後我使用發送的candata從主機:

cansend slcan0 600#ffffffffffffff 

我可以請在主機上使用candump slcan0來查看。

但我沒有收到任何目標。

我試圖與其他電纜,其中我用(在主機上)

sudo modprobe can 
sudo ip link set can0 type can bitrate 500000 triple-sampling on 
sudo ifconfig can0 up 

然後我能夠發送CAN消息是相同的。如果我在以前的電纜上嘗試相同的話,則會報錯Cannot find device "can0"

那麼我如何通過slcan接口發送?

+0

你可以發佈一個鏈接到你的USB轉CAN電纜嗎? – yegorich

回答

1

您的CAN比特率是錯誤的。要設置500kbit/s的需要調用下面的命令:

sudo slcand -o -s6 -t hw -S 3000000 /dev/ttyUSBx 
sudo ip link set up slcan0 

-s6裝置可比特率500kbit /秒,-s8指爲1Mbit /秒。 -S參數用於設置USB-to-CAN電纜中USB轉串口控制器的串口速度。用於slcan的完整CAN比特率表可以在here找到。