mfc配置CAN通信
配置:
把kerneldlls文件夹、ControlCAN.dll、ControlCAN.lib放在工程下面(debug和Release下面,最后需要exe和这些文件在一起);右键工程属性,链接器->输入->附加依赖项,填入./ControlCAN.lib。
查看工程的外部依赖性里面有了controlcan.h就成功了
一、打开can
VCI_INIT_CONFIG init_config;//定义一个初始化can的结构体
memset(&init_config,0,sizeof(VCI_INIT_CONFIG));
init_config.AccMask = 0xffffffff; //屏蔽码,表示全部接接收
init_config.Mode = 0; //正常模式
init_config.Timing0 = 0x00; //定时器0,和波特率有关,1M波特率
init_config.Timing1 = 0x14; //定时器1
VCI_OpenDevice(VCI_USBCAN2,a,0);//打开设备
VCI_InitCAN(VCI_USBCAN2,a,b,&init_config);//初始化can,VCI_USBCAN2=4,a:设备号,b:通道号
VCI_StartCAN(VCI_USBCAN2,a,b);//打开指定通道
二、关闭can
VCI_CloseDevice(VCI_USBCAN2,a);
三、复位can
(VCI_ResetCAN(VCI_USBCAN2,a,b);//复位
VCI_StartCAN(VCI_USBCAN2,a,b);//再打开
四、发送
VCI_CAN_OBJ vco;//数据结构体
VCI_Transmit(VCI_USBCAN2,a,b,&vco,1);//发送
五、接收
VCI_CAN_OBJ frameinfo[100];//接收结构体
VCI_ERR_INFO errinfo;//错误结构体
int buf_frame_lenth = 0;//缓冲区没有被读取的帧数据个数
DWORD rcv_lenth = 0;//接收到的数据
int a ;
int b ;
a = ((CComboBox*)can_this->GetDlgItem(IDC_COMBO10))->GetCurSel();//设备号
b = ((CComboBox*)can_this->GetDlgItem(IDC_COMBO11))->GetCurSel();//通道号
while (can_this->ISOPEN)
{
Sleep(100);
buf_frame_lenth = VCI_GetReceiveNum(VCI_USBCAN2,a,b);//查看缓冲区有多少帧数据
if(buf_frame_lenth != 0)//如果缓冲区有未被读取的数据,开始读数据
{
rcv_lenth = VCI_Receive(VCI_USBCAN2,a,b,frameinfo,100,20);//接收数据
if(rcv_lenth == 0xFFFFFFFF)//读取错误
VCI_ReadErrInfo(VCI_USBCAN2,a,b,&errinfo);//读取错误信息
//开始解析
}
mfc配置CAN通信的更多相关文章
- mfc配置GDI+有106个错误
mfc配置GDI+有106个错误,处理如下,参考http://bbs.csdn.net/topics/380054079 一开始#include...放在stdafx.h里有错误,后来上面修改好了,放 ...
- Tomcat6和Tomcat7配置SSL通信的比较
<Tomcat6和Tomcat7配置SSL通信的比较> 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 在项目开发过程中,尝尝会遇到Tomc ...
- OpenCV MFC 模块间通信
1. 新建MFC项目 点击完成. 2. 添加按钮 在"工具箱"中找到"Button"控件,添加至界面: 2. 配置opencv, 添加colordetecto ...
- MFC 多窗口通信时,使用RadioButton和Button时冲突问题
最近项目需要我们实现在两个窗口间进行通信,其中有个小功能如图所示: 当我点击GDIProgram中的Button1时,会更新Dialog的Radio1和Radio2的状态. Dialog中的Radio ...
- Qt配置USBCAN通信
周立功为CAN通信提供了动态库:官方提供了很多相关动态库和lib等,如图 ,其中kerneldlls里还有很多动态库,还有一个配置文件.其实这么多的文件,如果我们只用到USBCAN2通信,只需要ker ...
- 微端游戏启动器LAUNCHER的制作之MFC版一(序和进程通信)
额...刚开始信誓旦旦说要写launcher制作的博客,还没写完就被抛到脑后了真是没毅力.最近把之前写的wpf的launcher改成了mfc版,遇到很多问题,写了三个星期才写完,好好记录一下吧.我也想 ...
- MFC读写配置ini文件
https://blog.csdn.net/naibozhuan3744/article/details/78783446 https://blog.csdn.net/rayborn1105/arti ...
- tomcat安装配置.md
tomcat 安装 安装jdk jdk我使用的是oracle的,如果下载请在oracle的官网上下载.或者你也可以使用openjdk,官网在http://openjdk.java.net/. # ta ...
- SQL Server 2008 数据库镜像部署实例之三 配置见证服务器
SQL Server 2008 数据库镜像部署实例之三 配置见证服务器 前面已经完成了镜像数据库的配置,并进行那个了故障转移测试.接下来将部署见证服务器,实现自动故障转移. 一.关于见证服务器 1.若 ...
随机推荐
- [Gradle] 如何强制 Gradle 重新下载项目的依赖库
强制刷新 Gradle 依赖库缓存 $ gradle build --refresh-dependencies The --refresh-dependencies option tells Grad ...
- Java调用http保留访问状态
package com.coracle; import com.coracle.yk.xframework.util.yunTongXun.HttpRequest; import java.io.*; ...
- HDU 5667 Sequence(矩阵快速幂)
Problem Description Holion August will eat every thing he has found. Now there are many foods,but he ...
- CEF3 HTML5 audio标签为什么不能播放mp3格式的音频文件
CEF3 HTML5 audio标签 为什么不能播放mp3格式的音频文件 原因略. 解决方法: 找一个最新版的chrome ,我用的是24版本.路径 C:\Documents and Sett ...
- AntiSamy测试
AntiSamy为owasp针对xss提供的处理库,可以配置xml策略来决定过滤的内容,比如标签.属性.css等,自定义策略给开发人员使用成本比较高,AntiSamy也提供了几个内置的策略,其安全级别 ...
- SoftReference、WeakReference、PhantomRefrence分析和比较
级别 什么时候被垃圾回收 用途 生存时间 强引用 从来不会 对象的一般状态 JVM停止运行时终止 软引用 在内存不足时 优化内存使用 内存不足时终止 弱引用 在垃圾回收时 对象缓存 gc运行后终止 虚 ...
- MySQL整理(一)
一.数据管理发展阶段 人工管理阶段→文件系统阶段→数据库系统阶段 二.数据库管理系统提供的功能 (1)数据定义语言DDL:提供数据定义语言定义数据库及各种对象,定义数据的完整性约束和保密限制 ...
- FAQs on Android
@1: Environment Setup Ubuntu 14.04 32bits 1. Call Requires API level 11 (current min is 8) Android. ...
- Linux系统基础命令总结
一.帮助命令(1)helpxxxx --helphelp xxxx(2)manman xxxx二.ls查看命令:列表显示目录内的文件及目录ls 参数-l 以列表的形式显示-d 显示目录本身属性-a显示 ...
- http协议中post方法发出请求
package com.chinaums.szm.test.base.igoodful; import com.fasterxml.jackson.databind.ObjectMapper;impo ...