setup_can_usb.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/bin/bash
  2. # CAN-USB适配器快速配置脚本
  3. # 使用方法: sudo ./setup_can_usb.sh [设备路径]
  4. # 示例: sudo ./setup_can_usb.sh /dev/ttyACM0
  5. DEVICE=${1:-/dev/ttyACM0}
  6. INTERFACE="can0"
  7. BITRATE="s8" # s8 = 1Mbps
  8. echo "=========================================="
  9. echo "CAN-USB适配器配置脚本"
  10. echo "=========================================="
  11. # 检查设备是否存在
  12. if [ ! -e "$DEVICE" ]; then
  13. echo "[错误] 设备 $DEVICE 不存在!"
  14. echo "可用的串口设备:"
  15. ls -la /dev/ttyACM* /dev/ttyUSB* 2>/dev/null || echo " 未找到串口设备"
  16. echo ""
  17. echo "可用的CAN接口:"
  18. ip link show type can 2>/dev/null || echo " 未找到CAN接口"
  19. exit 1
  20. fi
  21. # 关闭已有的slcand进程
  22. echo "[1/4] 关闭已有的slcand进程..."
  23. killall slcand 2>/dev/null
  24. # 关闭已有的can0接口
  25. echo "[2/4] 关闭已有的can0接口..."
  26. ip link set $INTERFACE down 2>/dev/null
  27. # 启动slcand
  28. echo "[3/4] 启动slcand (设备: $DEVICE, 波特率: 1Mbps)..."
  29. slcand -o -c -$BITRATE $DEVICE $INTERFACE
  30. sleep 1
  31. # 启动CAN接口
  32. echo "[4/4] 启动CAN接口..."
  33. ip link set $INTERFACE up
  34. # 验证
  35. echo ""
  36. echo "=========================================="
  37. echo "配置完成! 接口状态:"
  38. echo "=========================================="
  39. ip link show $INTERFACE
  40. echo ""
  41. echo "测试命令:"
  42. echo " 监听: candump $INTERFACE"
  43. echo " 发送: cansend $INTERFACE 123#DEADBEEF"
  44. echo ""