自动驾驶(四十九)---------Kavser二次开发

       我们知道CAN总线是连接车身各个模块之间的桥梁,通过协议通讯,在车辆标定和测试中很多情况是用上位机和车身相连,收发满足CAN总线的信号。这中间如何通讯呢?这就需要用到Kavser。

       Kvaser 公司是 CAN 测试设备的优秀供应商,提供的 API 函数,通过Kvaser公司的设备,结合Kvaser CANlib的 API 函数,可以方便的编写自己的 CAN 测试工具,对 CAN 网络的开发测试有很大的帮助。

      Kvaser 驱动地址:http://canlandbucket.s3-website-eu-west-1.amazonaws.com/productionResourcesFiles/bc6870e3-87de-4661-b023-be0eec981d53/kvaser_drivers_setup.exe

      Kvaser Canlib地址: http://canlandbucket.s3-website-eu-west-1.amazonaws.com/productionResourcesFiles/6b1cefab-0210-415a-9925-55d6088c4716/canlib.exe

1. Kvaser设备:

       常用的Kvaser设备型号如下: 

       Kvaser Hybrid 2xCAN/LIN:  标准USB接口和两个高速CAN或LIN通道,两个独立9针D-SUB CAN接口。

                    

     Kvaser Leaf Light R v2 :采用标准USB2.0连接和高速CAN通道,配有9针D-SUB CAN接口,可处理标准和扩展CAN报文的传送和接收,时间戳精度为100微秒。

                 

2. Kvaser CANLIB

      a. 信息服务类:

           

       b. 通道开启和关闭:

             

        c. 通道参数:

             

         d. 接收消息:

             

          e. 发送消息

             

           f. 通知和等待:

             

3. 操作实例:

       使用 Kvaser CANLIB 时,在文件开头,必须包含 #include <canlib.h>

       简单操作流程

  •    初始化驱动程序
  •    读 CAN 通道数目,获取通道句柄
  •    选择开启指定通道
  •    设定通道参数
  •    设定通道工作类型
  •    打开总线
  •    读 CAN 消息或写 CAN 消息
  •    关闭总线
  •    关闭通道

     代码实例:

void main(void)
{
    canHandle h;
    canInitializeLibrary(); 
    h = canOpenChannel(0, canWANT_EXCLUSIVE);
    if (h != canOK) {
        char msg[64];
        canGetErrorText((canStatus)h, msg, sizeof(msg));
        fprintf(stderr, "canOpenChannel failed (%s)\n", msg);
        exit(1);
    }
    canSetBusParams(h, BAUD_250K, 0);
    canSetBusOutputControl(h, canDRIVER_NORMAL);
    canBusOn(h);
    canWrite(h, 123, "HELLO!", 6, 0);
    canWriteSync(h, 500);
    canBusOff(h);
    canClose(h);
}

 

 

 

 

 

 

 

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值