上一篇测试完电机后,这一篇进行上位机程序的编写。

大致分为两个模块:

1、CAN初始化和关闭模块

2、发送接受信息模块

整体流程:

初始化文件库->打开CAN通道->设置总线参数->打开总线->发送接受信息->关闭总线

一、CAN的初始化和关闭。

此部分主要是对CAN卡进行相关设置,说白了就是用代码实现我们上一篇中通过CANKING软件进行的选择参数的操作。

引用并using Kvaser.CanLib之后,我们就可以进行下面的操作:

(Kvaser.CanLib可在Kvaser官网下载)地址如下:Kvaser官网CAN总线分析仪和数据记录仪|CAN总线产品和软件解决方案chttps://www.kvaser.cn/

初始化代码:

//初始化文件库
Canlib.canInitializeLibrary();//打开CAN通道,channelNumber为通道编号,一般为0,handle为返回的句柄
int channelNumber = 0;
int handle = Canlib.canOpenChannel(channelNumber, Canlib.canOPEN_EXCLUSIVE);//设置波特率,根据实际情况选择,我这里为1M,其他参数传0即可,Canlib.canStatus status            为方法返回的执行状态信息,可以用来判断方法是否成功执行
Canlib.canStatus status;
status = Canlib.canSetBusParams(handle, Canlib.canBITRATE_1M, 0, 0, 0, 0);//打开bus总线
status = Canlib.canBusOn(handle);

关闭代码:

//关闭bus总线
status = Canlib.canBusOff(handle);
//关闭通道
status = Canlib.canClose(handle);

二、发送接收信息。

简单的调用一个方法,关键是参数要传对

//发送信息
status = Canlib.canWrite(handle, id, msg, dlc, flag);//接收信息
stat = CanlibAPI.canRead(handle, out id, bts,out uint msg, out uint flag,out uint time);

handle:初始化处得到的句柄

id:电机ID(16进制,比如0x01)

msg:消息本体

dlc:消息长度

flag:标准帧或加扩展帧(标准帧为0,扩展帧为1,一般为标准)

接收信息时,不少参数要用out修饰。

很简单的调用几个方法,不过自己慢慢摸索也有不少弯路要走。

希望大家共同学习进步。

C#:CAN通讯上位机的简单示例Ⅱ相关推荐

  1. matlab制作以太网数据接收上位机_Python制作串口通讯上位机

    串口通讯具有简单易用的特点广泛应用于测试设备的通讯和数据传递.单片机与计算机的通讯等,本案例基于Python语言制作一个用于接收燃油质量流量计的串口通讯上位机,实现数据的读取和保存. 1. 相关知识点 ...

  2. FX5U项目程序,用的三菱FX5U的PLC,里面有CC- LINK通讯机器人.自由口通讯仪表.以太网套接字通讯上位机

    FX5U项目程序,用的三菱FX5U的PLC,里面有CC- LINK通讯机器人.自由口通讯仪表.以太网套接字通讯上位机,脉冲控制3个步进,还有配方. PLC程序有完整的注释,结构清晰,PROFACE的触 ...

  3. S7300与G120变频器控制上位机 C#与S7300通讯上位机

    S7300与G120变频器控制上位机 C#与S7300通讯上位机 提供给需要学习的同学,C#读取,经过xml配置文件读取进行定义,G120使用说明,写入S7300控制西门子G120源代码,手动控制正反 ...

  4. C#与西门子plc通讯上位机 c#软件 工控软件

    C#与西门子plc通讯上位机 c#软件 工控软件 1.该程可以实现CSharp与西门子全系列plc(200,200smart,300,1200,1500)的以太网s7通讯,通讯传输快稳定. 2.该程序 ...

  5. labview can通讯上位机,调用周立功库文件

    labview can通讯上位机,调用周立功库文件. 能够基本通讯,可供学习参考. 适合小白上手,后期可以根据自己需求更改 ID:6917618516632702

  6. php怎么与下位机通讯,上位机与下位机之间的连接通讯方式

    上位机与下位机之间可以用USB或者串口进行连接通讯 上位机指的是计算机(电脑),下位机指的是内部有单片机(MCU)的电子产品或者设备.计算机可以用作给下位机通讯的接口有USB和串口(比较旧的计算机还有 ...

  7. python 串口_如何使用Python开发串口通讯上位机(一)

    用Python开发串口通讯型上位机,其实并非最优解,本系列更新只为个人学习与总结.如果有C语言底子,嵌入式层面的上位机开发,C++ Builder,C#才是更加好用的利器. 1 什么是上位机 从事过嵌 ...

  8. python编程与下位机通讯_如何使用Python开发串口通讯上位机(一)

    用Python开发串口通讯型上位机,其实并非最优解,本系列更新只为个人学习与总结.如果有C语言底子,嵌入式层面的上位机开发,C++ Builder,C#才是更加好用的利器.1 什么是上位机 从事过嵌入 ...

  9. 实现一个CAN通讯上位机

    实现一个CAN通讯的上位机,需要满足以下步骤: 获取CAN接口硬件,并连接到计算机上.一般来说,CAN接口硬件会提供一个USB接口,可以直接连接到计算机上. 安装驱动程序.在大多数情况下,CAN接口硬 ...

最新文章

  1. DeepMind提出强化学习新算法,教智能体从零学控制
  2. matlab练习程序(图像区域分裂)
  3. 欧拉回路【洛谷习题】无序字母对
  4. yum 方式安装nginx
  5. 一次C端线上缓存问题的总结
  6. ORACLE 异常错误处理
  7. 计算矩阵中全1子矩阵的个数
  8. Linux系统调用Hook姿势总结
  9. python opencv之 Hough圆变换
  10. url、href、src 详解
  11. 第六天:对项目后端日志存储
  12. Linux下zip文件解压乱码
  13. 基于leaflet地图对行政区进行维诺图区域划分
  14. java 蔡学镛_蔡学镛谈“Linux + Java 会得到什么”
  15. vue中面包屑的实现方法
  16. html5经纬度定位 源码_利用HTML5定位功能获取经纬度,在根据经纬度利用百度地图获取位置信息...
  17. 英语语法三大从句刷题总结
  18. 通俗理解torch.distributed.barrier()工作原理
  19. curl+个人证书访问https站点
  20. aspose office系列转换pdf文件

热门文章

  1. 如何检测隐藏在Magisk背后的ROOT及外挂
  2. win10系统vs2019 mpich配置
  3. BCB数据库问题总结
  4. (转)如何彻底的卸载anaconda(包括配置文件)
  5. xsy1436-括号游戏
  6. M.2/sata2.0/3.0接口,PCI-E1.0/2.0/3.0/4.0x2x4x8x16速率汇总
  7. 详解C语言最快关键字——register
  8. 整理并记录几种运算放大器
  9. HTTP常用的响应码说明(网页/服务器显示200、302、404、500是什么意思,表示什么)
  10. 古希腊神话故事3 :丢卡利翁和皮拉