基于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java开发webservice的几种方式「建议收藏」

    java开发webservice的几种方式「建议收藏」webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。1.Axis2方式Axis是apache下一个开源的webservice开发

    2022年7月4日
  • 多模态综述

    多模态综述多模态综述介绍参考文献:《MultimodalMachineLearning:ASurveyandTaxonomy》介绍我们身边的环境就是一个多模态的环境,看到的实体、听到的声音、闻到的气味和尝到的味觉。本篇综述不是着重于多模态的应用,而是重点关注多模态的方法和技术。多模态问题的定义在于数据来源是不同模态的数据,而这些数据具有异质性(heterogeneity),则带来了多模态的五个挑战:representation,translation,alignment,fusion和co-

    2022年6月17日
  • 从零开始学习UCOSII操作系统4–任务管理

    从零开始学习UCOSII操作系统4–任务管理从零开始学习UCOSII操作系统4–任务管理1、重讲任务(1)任务可以是一个无限的循环,也可以在一次执行完毕后被删除。这里需要注意的是,任务的代码并不是真正的删除了,而是UCOSII不再理会该任务代码,所以该任务代码不会再执行。(2)建立任务,OSTaskCreate()如果想让UCOSII管理用户的任务,必须先建立任务,可以通过将任务的地址(函数名)和其他参数传递到

    2022年5月24日
  • springcloud与dubbo深入对比

    springcloud与dubbo深入对比微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标准和规范或者草案,但业界已经有一些很有影响力的开源微服务架构框架提供了微服务的关键思路,例如Dubbo和SpringCloud。各大互联网公司也有自研的微服务框架,但其模式都与这二者相差不大。微服务主要的优势降低复…

    2022年5月10日
  • MATLAB实现粒子群算法的进阶讲解(多维+约束条件)

    MATLAB实现粒子群算法的进阶讲解(多维+约束条件)我们在之前的博客中,对粒子群算法的实现进行了讲解,主要讲解了粒子群算法的产生,实现步骤,并且通过代码来实现了当输入变量为n维向量时的粒子群算法。许多网友对之前的代码有些疑惑,并且提到了几个问题:1,对于之前的代码,觉得有些看不懂?2,如果输入变量不再是n维向量,而是n*n维的矩阵,甚至n*n*n…维的矩阵,该如何编写代码?3,如果目标函数存在约束条件,该如何编写代码?本节就基于之前博客的内容,出现的问题,以及这两天我的一些学习,来对上述问题进行一个解答。

    2022年5月1日
  • cuda卸载与安装

    cuda卸载与安装cuda卸载1.正常卸载操作在cuda的安装目录下,有卸载脚本1.运行卸载脚本cd/usr/local/cuda/binsudo./uninstall_cuda_9.0.pl2.删除安装文件夹sudorm-rfcudasudorm-rcuda-9.0找不到uninstall的卸载操作1.正常卸载操作sudoapt-get–purgeremovecuda:卸载软件及其配置sudoapt-getautoremovecuda

    2022年9月6日

发表回复

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

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