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

关注我们的方法:

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

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

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

使用stm32开发 USB_CAN 适配器测试的更多相关文章

  1. windows下STM32开发环境的搭建

    一.概述 1.说明 笔者已经写了一篇Linux下STM32开发环境的搭建 ,这两篇文章的最区别在于开发环境所处的系统平台不一样,而其实这个区别对于开发环境的搭建其实影响不大,制作局部上的操作上发生了改 ...

  2. Linux下STM32开发环境的搭建

    目录 一.概述 1.目的 2.开发环境描述 3.Eclipse构建的STM32集成开发环境结构 4.GDB / GDB Server 调试模型 二.搭建步骤 三.详细的搭建过程 1.安装eclipse ...

  3. STM32开发环境--使用MDK建立一个工程

    STM32开发环境--使用MDK建立一个工程 该工程模版是基于库函数基础制作而成,其中有借鉴相关资料.虽然工程模版一旦建立,以后任何项目只需套用即可,但考虑到长时间不使用,在将来某天可能会突然用到,再 ...

  4. VS Code 搭建stm32开发环境

    MCU免费开发环境 一般芯片厂家会提供各种开发IDE方案,通常其中就包括其自家的集成IDE,如: 意法半导体 STM32CubeIDE NXP Codewarrior TI CCS 另外也可以用ecl ...

  5. Android高手速成--第四部分 开发工具及测试工具

    第四部分 开发工具及测试工具 主要介绍和Android开发工具和测试工具相关的开源项目. 一.开发效率工具 Json2Java根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson ...

  6. 第五章——搭建S3C6410开发板的测试环境

    搭建S3C6410开发板的测试环境 通过本章的学习学会了如何在开发板上安装Android.开发板是学习和开发嵌入式技术的主要硬件设备,想要顺利的通过linux驱动访问硬件,是不能在PC板上模拟的,需要 ...

  7. 如何查找STM32开发资料

    Ⅰ.概述 该文写给那些处于初学ST芯片开发.英文不好而又想偷懒的人. 该文主要的目的是提醒大家:学习一门技术是需要舍得花功夫,捷径是你在起点与终点之间不断的探索,最终总结出来的一条适合自己的路. 下面 ...

  8. iOS开发中的测试框架

    转载作者:@crespoxiao 我们为什么要用测试框架呢?当然对项目开发有帮助了,但是业内现状是经常赶进度,所以TDD还是算了吧,BDD就测测数据存取和重要环节,这很重要,一次性跑完测试单元检查接口 ...

  9. iOS开发中的测试框架 (转载)

      作者:CrespoXiao授权 地址:http://www.jianshu.com/p/7e3f197504c1 我们为什么要用测试框架呢?当然对项目开发有帮助了,但是业内现状是经常赶进度,所以T ...

随机推荐

  1. [LC]219题 Contains Duplicate II (存在重复元素 II )

    ①英文题目: Given an array of integers and an integer k, find out whether there are two distinct indices ...

  2. 【dp】B-number

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3652 题解:先预处理([0,0][1,1],[2,2]....[0,9],[10, 19],[20,2 ...

  3. Windows 10上源码编译glog和gflags 编写glog-config.cmake和gflags-config.cmake | compile glog and glags on windows from source

    本文首发于个人博客https://kezunlin.me/post/bb64e398/,欢迎阅读! compile glog v0.3.5 and glags on windows from sour ...

  4. 【Linux系列】Centos 7安装 Nginx(三)

    目的 为了下面的Laravel部署,本篇开始安装Nignx服务器. 防火墙设置 在物理主机上查看nginx是否安装成功,需要开放虚拟机的80端口. 用cmder登录到虚拟机 firewall-cmd ...

  5. 正确理解 PHP 的重载

    PHP 的重载跟 Java 的重载不同,不可混为一谈.Java 允许类中存在多个同名函数,每个函数的参数不相同,而 PHP 中只允许存在一个同名函数.例如,Java 的构造函数可以有多个,PHP 的构 ...

  6. FPGA基础(verilog语言)——语法篇(续1)

    上一篇文章提到了FPGA中一个模块基本结构,这篇文章开始介绍语法. 首先,我们学习一门语言都要从这门语言的单词学起,所以verilog中的关键词都有哪些呢?看下面: A:always.assign B ...

  7. pwnable.kr 第一天

    1.FD 直接通过ssh连接上去,然后,看下源代码. #include <stdio.h> #include <stdlib.h> #include <string.h& ...

  8. 【论文阅读】Deep Mutual Learning

    文章:Deep Mutual Learning 出自CVPR2017(18年最佳学生论文) 文章链接:https://arxiv.org/abs/1706.00384 代码链接:https://git ...

  9. Netty学习篇⑥--ByteBuf源码分析

    什么是ByteBuf? ByteBuf在Netty中充当着非常重要的角色:它是在数据传输中负责装载字节数据的一个容器;其内部结构和数组类似,初始化默认长度为256,默认最大长度为Integer.MAX ...

  10. Leetcode 1020 飞地的数量

    地址 https://leetcode-cn.com/problems/number-of-enclaves/ 给出一个二维数组 A,每个单元格为 0(代表海)或 1(代表陆地). 移动是指在陆地上从 ...