精选文章 开启CAN通信学习(二)——基于Kvaser的CAN通信案例

开启CAN通信学习(二)——基于Kvaser的CAN通信案例

作者:常哥说编程 时间: 2020-08-05 03:50:06
常哥说编程 2020-08-05 03:50:06

1 案例硬件介绍

Kvaser是瑞典的一家专门提供CAN和LIN总线分析仪及数据记录仪的公司,在CAN产品开发领域已经有近30年的经验,本案例选择的CAN通信硬件型号是Kvaser Leaf Light v2,产品如下图所示:

公众号dotNet工控上位机:thinger_swj】

开启CAN通信学习(二)——基于Kvaser的CAN通信案例1

 

为了配套该产品,还准备了一个威柏电子(Westpac)提供的模拟控制器RL78 CAN ECU来进行功能测试,如下图所示,该模拟控制器可以通过上位机控制,实现速度调节及转向灯控制。

开启CAN通信学习(二)——基于Kvaser的CAN通信案例2

 

硬件准备就绪,这个接线也比较简单,由于是已经集成好的DB9插头,所以ECU与CAN卡之间直接公头和母头对接就可以了,CAN卡通过USB接入电脑,安装好驱动后,就可以通过电脑的设备管理器中看到CAN设备了,如下图所示:

开启CAN通信学习(二)——基于Kvaser的CAN通信案例3

 

2 案例开发准备

CAN通信开发需要调用厂家提供好的一些SDK或者Lib库,而且厂家一般都是提供一些Demo,Demo中包含多种不同的语言,我们找到dotnet或者C#或者cs的字眼,然后打开相关的案例进行研究。Kvaser并没有提供类似的Demo,只是提供了一个Kvaser CANLib SDK的软件,安装之后打开包含以下内容:

开启CAN通信学习(二)——基于Kvaser的CAN通信案例4

 

接着打开dotnet >> win32 >> fw40,找到下面这些dll,我们的开发主要就是基于这个文件夹里面的dll来实现的,dotnet下面有win32和x64两个文件夹,这里根据不同的项目平台版本,选择相应的dll。

开启CAN通信学习(二)——基于Kvaser的CAN通信案例5

 

Kvaser针对CANLib库的使用,提供了一个HTML帮助手册,如下图所示,如果对于某个函数或者参数不理解,可以通过这个帮助手册来查找:!

开启CAN通信学习(二)——基于Kvaser的CAN通信案例6

 

虽然有了dll以及帮助手册,但是对于应该调用哪些方法,调用方法之间的顺序,很多时候我们仍然是一头雾水,下面的这个开发指南应该是雪中送炭。

开启CAN通信学习(二)——基于Kvaser的CAN通信案例7

 

3 案例程序开发

万事具备之后,这时候我们就可以进行程序开发了,先创建一个Windows窗体应用程序,项目名称为thinger.com.kvaserCANECU,界面初步设计如下图所示:

公众号dotNet工控上位机:thinger_swj】

开启CAN通信学习(二)——基于Kvaser的CAN通信案例8

 

(1)UI界面设计完成后,首先将canlibCLSNET.dll复制到项目中并添加引用

(2)在窗体初始化中调用canInitializeLibrary初始化并初始化波特率

开启CAN通信学习(二)——基于Kvaser的CAN通信案例9

(3)刷新按钮事件下,获取所有能获取到的CAN通信信息

开启CAN通信学习(二)——基于Kvaser的CAN通信案例10

(4)打开按钮事件中,实现打开CAN卡及关闭CAN卡的功能

开启CAN通信学习(二)——基于Kvaser的CAN通信案例11

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:短视频源码开启“短视频+”

下一篇:状态压缩DP-->蓝桥杯2019:糖果

您可能感兴趣

  • 美国首次使用CRISPR技术编辑癌症患者细胞,AI帮助对抗饥饿!|技术前沿洞察

    热点追踪 / 深度探讨 / 实地探访 / 商务合作 大家好,一周技术前沿洞察又跟大家见面啦,本周来自高校与实验室的技术突破都十分有趣,有帮助了解大脑活动的、也有帮助癌症治疗的,还有用AI对抗饥饿的。此外,谷歌、英伟达等大公司也有新发现和新突破,赶紧来跟硅谷洞察看看吧! 美国高校 耶鲁大学新研发微观技术实时了解大脑活动 耶鲁大学多个实验室共同协作,终于研发出一种方法,利用微观技术实时了解整个大...

  • 搞一下Adaptive Platform AUTOSAR(一)—— 技术介绍

    写在前面的话: 笔者是一名汽车电子爱好者,喜欢分享一些自己的学习笔记,从今日起,笔者开始学习Adaptive Platform AUTOSAR,笔者会将自己的理解分享出来,有不足之处,还望指正! 缩写定义 AP:Adaptive Platform AUTOSAR CP:Classic Platform AUTOSAR OTA:Over-the-Air SOTA:Software Over-t...

  • 深入理解Java类加载器(一):Java类加载原理解析

    一、引子 每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,其实,这个异常背后涉及到的是Java技术体系中的类加载。Java类加载机制虽然和大部分开发人员直接打交道的机会不多,但是对其机理的理解有助于排查程序出现的类加载失败等技术问题,对理解Java虚拟机的连接模型和Java语言的动态性都有很大帮助。 二. Java 虚拟机类加载器结构简述 ...

  • 意识永存:脑机结合让大脑复活

    来源:Medium 编辑:鹏飞 转载自公众号:新智元(AI_era) 【导读】一个硅谷的创业公司坚信总有一天能够开发出一种科技来复制大脑结构并再创造一个新的大脑;马斯克投资的公司在寻找大脑和机器的“真脑机接口”。那么意识可以被复制、被移植吗?人死后,复制的记忆能让其永生吗? 我思故我在。那么我不思呢? 电影《寻梦环游记》里有一句台词:真正的死亡是世界上再没有一个人记得你。 新推出的一部科幻小...

  • 大数据应用现状:从发现价值到创造价值

    从发现价值到创造价值, 大数据将成为“互联网+” 产业升级的驱动力。 过去,数据的价值主要应用在决策领域,典型应用是商业智能(BI, Business Intelligence)在企业经营管理层面的应用, 即通过数据收集、管理和分析等方法,将数据转化为知识, 发现数据的价值,进而提供决策支持。随着数据体量的不断增加和处理数据能力的提升, 大数据已经成为一类新的资产, 其应用场景正在不断扩宽,...

  • Google Java编程风格指南

    2019独角兽企业重金招聘Python工程师标准>>> ##1. 前言## 这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。 与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则, 对于那些不是明...

  • Mysql常用命令行

    第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下: mysql -u用户名 -p用户密码 键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 第三招...

  • 【转载】 vs2005视频教程 之 抽象类和接口 四 [视频]

    原帖地址:http://www.cnblogs.com/thcjp/archive/2007/04/20/721587.html 首先要感谢 anytao.cnblogs.com ,因为下面总结这部分我是直接粘贴复制他的,呵呵! 3.1 相同点 都不能被直接实例化,都可以通过继承实现其抽象方法。 都是面向抽象编程的技术基础,实现了诸多的设计模式。 3.2 不同点 接口支持多继承;抽象类不能实...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。