USB_CAN 适配器测试例程

采用CDC透传模式

一、简介

CAN总线无处不在,在设计开发中,到处需要用到CAN总线调试工具,本工具可以作为CAN的基础测试工具,用于监听CAN总线,或测试CAN数据收发。测试时,可以用两个板子,对接起来测试。即可实现如下介绍的功能。

二、接线图示意

 

 

 

三、开发测试环境

兼容系统:XP、WIN7

测试系统:XP 32bit(已验证)

开发工具:MDK 4.54

MCU型号:STM32F107VC(3.5版本固件库)

测试软件:stc-isp-15xx-v6.82.exe(串口调试工具)

四、测试方式:定时CAN总线数据发送

两块板卡供电、下载好测试程序、总线对应接好,两块板卡对接。

使用mini-usb数据线链接电脑、观测测试数据、接任意一块板子即可

定时周期:0.5s

测试模式:

CAN接收到数据直接传输给USB(包长度为20字节)

CAN将USB接收到的数据发送到总线

CAN自动向总线发生周期数据包:间隔0.5秒

数据包格式如下:

指示灯作用:

LED2(每秒闪烁,指示程序运行正常)

LED3(收到一个CAN数据包,翻转一次led状态,代表收到一个数据)

LED4(收到一个USB数据包,翻转一次led状态,代表收到一个数据)

 

 

 

定时发送数据包格式:

TxMessage.StdId=0x12345678;

TxMessage.ExtId=0x11223344;

TxMessage.IDE=CAN_ID_EXT;

TxMessage.RTR=CAN_RTR_DATA;

TxMessage.DLC=8;

TxMessage.Data[0]=0x10;

TxMessage.Data[1]=0x20;

TxMessage.Data[2]=0x30;

TxMessage.Data[3]=0x40;

TxMessage.Data[4]=0x50;

TxMessage.Data[5]=0x60;

TxMessage.Data[6]=0x70;

TxMessage.Data[7]=0x80;

USB访问方式:

1、 插入usb数据线:若第一次插入会提示安装驱动。

2、 若提示安装驱动则,定位当对应驱动目录

3、 安装好驱动后,设备管理器将发现,USB转CAN适配器

4、 这时,就可以使用串口工具访问该设备了(选择好对应串口号,hex模式,其他无所谓)

5、 数据通信截图

6、 数据解释

数据包:固定长度为20字节

00 00 00 00 44 33 22 11 04 00 08 10 20 30 40 50 60 70 80 00

4字节:00 00 00 00(StdId)

4字节:44 33 22 11(ExtId:0x11223344)

1字节:04(ExtId:04 扩展模式)

1字节:00(RTR:00 CAN_RTR_Data)

1字节:08(DLC:08 数据长度为8字节)

8字节:10 20 30 40 50 60 70 80(8字节数据)

1字节:00(FMI:00)

测试固件:

STM32F107_USB_CAN 20150510.hex           MDK4.54编译好的固件

固件源码

在工程管理中、采用通过文件库存放在固定位置,即与工程文件独立并共享、所以编译中需要处理以下问题

标准固件库路径:

F:\lib\ST_STD\STM32F10X_Lib   :STM32标准外设库 3.5

F:\lib\STM32_USB\V301         :stm32-usb库 3.01

F:\lib\CM3                    :与cm3相关的头文件及配置文件

完整开发包资料

2015-5-10

层层惊涛设计室

层层惊涛开发设计工作室

博客:http://www.cnblogs.com/ccjt/ (层层惊涛,技术博客中心)

邮箱:shenyae86@163.com

关注我们的方法:

百度:输入:”层层惊涛”

淘宝:选择店铺搜索,输入:”柴草电子“

淘宝:选择店铺搜索,输入:”层层惊涛“

最新文章

  1. BeautifulSoup的选择器
  2. java时间和日期类型
  3. Pyqt Smtplib实现Qthread多线程发送邮件
  4. swift学习笔记之-下标脚本
  5. Omnet++ 4.0 入门实例教程
  6. 【Java重构系列】重构31式之封装集合
  7. Broadcom网卡linux系统下无法连接到网络问题(某种情况- -||)的解决办法
  8. Windows 下如何安装配置Snort视频教程
  9. C++内联函数与宏定义
  10. android studio升级2.3后出现的问题
  11. CSS的使用方法
  12. kubernetes 利用label标签来绑定到特定node运行pod
  13. HTML+JS实现网站公告信息滚动显示
  14. java 其它可选方法
  15. HOOK 底层键盘消息---WH_KEYBOARD_LL
  16. vue.set的用法
  17. VisualStudio2012轻松把JSON数据转换到POCO的代码(转)
  18. AtcoderGrandContest 005 F. Many Easy Problems
  19. filebeat配置不同路径下的log的两种方法
  20. 【Oracle】查找每期数据都存在的产品

热门文章

  1. PHP导出成PDF你用哪个插件
  2. MAC OS下编译apple跨平台的libevent库 (可延申到其它第三库)
  3. 纯css实现tab导航
  4. Beta阶段贡献分配
  5. Docker从门外到入门使用
  6. JAVA,Python代码是编译执行还是解释执行?
  7. 2019年12月2日Linux开发手记
  8. 69道Spring面试题及答案
  9. supersocket/SocketEngin/BootstrapFactory.cs 详解
  10. 关于小码哥kylin