基于Python的周立功CAN上位机(详细教程)

基于Python的周立功CAN上位机(详细教程)

摘要: 目前关于CAN通讯报文解析使用的编程语言有很多,比如:Labviewer、C#、C语言等。但是很少有人用Python进行开发,使用Python进行开发该上位机可大大节省开发时间。本篇博客主要介绍一下基于Python的周立功CAN上位机。

使用的CAN分析仪: 《创芯科技》的CAN分析仪,型号为USB_CAN-2A或者CANalyst-II
在这里插入图片描述

使用的下位机: STM32F407正点原子开发板
在这里插入图片描述

使用的测试用上位机:《创芯科技》开发的上位机
在这里插入图片描述
工具具备之后,我们正式开始用python进行测试开发。

为了节省开发时间,我们选用的源码为github开源代码

程序针对Windows X64进行开发,如果使用linux会很麻烦,所以本文主要介绍windows下的应用。该开源文件的主要程序如下所示:

 #新建对象
 c = Communication() 
 #配置CAN卡, 型号:USB_CAN_2EU, CAN卡索引: 0, CAN卡通道:channel_0, 波特率: 500kbps
 c.set_can_board_configuration(can_type="usb_can_2eu",can_idx=0,chn=0,baud_rate=500)
 #打开CAN卡'
 c.open_new()
 
 # 注意发送函数默认发送数据长度为8个字节
 
 # 发送标准帧 id 为0x110
 data = [1,2,3,4,5,6,7,8]    
 c.Transmit(0x110,data)
 
 # 发送拓展帧
 data = [1,2,3,4,5,6,7,8]    
 c.Transmit(0x110,data,extern_flag = True)
 
 # 发送长度为6的帧 , 根据周立功官方手册,CAN帧最大发送数据长度为8,当然我对此表示怀疑,
 # 但既然周立功所提供驱动貌似只能发送最大长度为8 byte的帧,因此,请保证数据长度不大于8即可。
 data = [1,2,3,4,5,6]    
 c.Transmit(0x110,data,data_len=6)
 
 # 新建线程,不断读取CAN卡上的报文并且打印出来
 cycle_read_thread = threading.Thread(target=c.PrintReceiveData)
 cycle_read_thread.start()

针对《创芯科技》型号为USB_CAN-2A或者CANalyst-II的两款CAN分析仪,Python制作的上位机源码可参考:https://download.csdn.net/download/RNG_uzi_/12919532

当然,《创芯科技》厂家也提供了上位机和基于C#、Labview等开源程序(包含了详细的使用说明),下载地址:https://download.csdn.net/download/RNG_uzi_/12526373

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2132.html原文链接:https://javaforall.net

(8)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • k8s-主节点巡检脚本

    k8s-主节点巡检脚本

    2021年6月2日
    129
  • idea配置Tomcat时没有Artifacts选项

    idea配置Tomcat时没有Artifacts选项首先解释一下IDEA中的Artifact是什么?Artifacts是maven中的一个概念,表示某个module要如何打包,例如warexploded、war、jar、ear等等这种打包形式;好奇这个带不带exploded的有什么差别不?exploded在这里你可以理解为展开,不压缩的意思。也就是war、jar等产出物没压缩前的目录结构。这个是不带exploded的。和下图的框框对比下,就可以看到差别啦这两张图,意在说明,带exploded和不带的差别,一个是打包压缩,另.

    2022年10月18日
    0
  • QT的基本知识「建议收藏」

    QT的基本知识「建议收藏」QT是一个跨平台应用程序和UI开发框架。具体的安装以及源文件的下载这里不详细介绍。要在QT界面上添加一个按钮,可以有两种方法:一个是直接拖放一个按钮即可;另一种则是通过程序来添加一种按钮。QT提供的信号和槽机制,可以让任意两个对象之间进行消息处理,其作用就是让一个对象产生的信号能够被另一个对象接受并处理。QT基本所有的对象都集成在QObject对象中,在这个对象中有一个静态函数connect…

    2022年5月17日
    33
  • SnackBar_冲洗器使用方法图解

    SnackBar_冲洗器使用方法图解我们在googlekeep中删除记事块儿时,下面会弹出一个小条儿,问你是否撤消,一段时间后自动隐去,同时右划也可以使它隐去。最初我以为这个小条儿是做的一个自定义控件,后来无意中发现不用这么麻烦。Go

    2022年8月4日
    4
  • java遍历泛型的方法

    java遍历泛型的方法

    2021年12月1日
    62
  • 如何测试硬盘软件,win10系统怎么用硬盘检测工具HDTune【图文】「建议收藏」

    如何测试硬盘软件,win10系统怎么用硬盘检测工具HDTune【图文】「建议收藏」HDTune是一款专业的硬盘检测工具,虽然占用内存不大,但是能够全面的检测硬盘的传输速度、温度以及健康状况等。很多新手用户可能并不知道HDTune怎么用,对此,小编特意去整理win10系统硬盘检测工具HDTune的使用方法。具体方法如下:1、HDTune使用方法很简单,打开HDTune硬盘检测工具后我们可以选择硬盘,在主界面就可以看到硬盘的温度;2、在HDTune硬盘检测工具右侧选择读取或者写入,…

    2022年7月15日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号