基于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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(8)


相关推荐

  • matlab 图像填充斜线_怎么更改柱形图的填充

    matlab 图像填充斜线_怎么更改柱形图的填充针对这种情况,MATLAB提供了若干特殊图形绘制函数。接下来主要介绍特殊图形的绘制方法,主要图形包括:条形图、区域图、饼状图、柱状图、离散图、罗盘图、羽毛图、……针对这种情况,MATLAB提供了若干特殊图形绘制函数。接下来主要介绍特殊图形的绘制方法,主要图形包括:条形图、区域图、饼状图、柱状图、离散图、罗盘图、羽毛图、……[0,7,-2,2]);MATLAB提供的统计…

    2022年10月19日
  • MSAgent 详细解说(下)

    MSAgent 详细解说(下)七、我的菜单右键点击角色是不是会弹出一个菜单?什么,只有Hide一项?想不想定义一个个性的菜单呢?js代码<object style="visibility:hidden" id="MSAgent" classid="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"></object>  <…

  • AbstractInterceptor和MethodFilterInterceptor的区别

    AbstractInterceptor和MethodFilterInterceptor的区别1.AbstractInterceptor是Interceptor的子类。2.MethodFilterInterceptor是AbstractInterceptor的子类,你需要实现的拦截器支持方法过滤性,就继承MethodFilterIntercepter这个类.默认的情况下,拦截器会拦截Action中的所有的方法,这里不包括setter或getter方法.这时就可以使用方法

  • 微信小程序轮播图调用接口

    微信小程序轮播图调用接口生命周期函数,页面加载:onLoad:function(options){let_this=this;wx.request({url:’http://www.day.com/index.php/img’,//仅为示例,并非真实的接口地址method:”GET”,success(res){//console.log(res.data.data)letdatas=res.data.data;//渲染_this.setData({datas})},}

  • Springboot+Spring-Security+JWT 实现用户登录和权限认证「建议收藏」

    如今,互联网项目对于安全的要求越来越严格,这就是对后端开发提出了更多的要求,目前比较成熟的几种大家比较熟悉的模式,像RBAC基于角色权限的验证,shiro框架专门用于处理权限方面的,另一个比较流行的后端框架是Spring-Security,该框架提供了一整套比较成熟,也很完整的机制用于处理各类场景下的可以基于权限,资源路径,以及授权方面的解决方案,部分模块支持定制化,而且在和oauth2.0进…

  • Linux从0到1:安装Linux操作系统(超级详细版)「建议收藏」

    Linux从0到1:安装Linux操作系统(超级详细版)「建议收藏」分享一下安装Linxu操作系统的流程安装虚拟机首先自己进行Vmwareworkstation的安装,打开此软件进行以下步骤。在VMware中新建虚拟机下一步,选择自定义安装虚拟机兼容性,默认下一步安装来源,选择稍后安装操作系统操作系统类型,选择Linuxcentos64自定义虚拟机名称,和文件夹位置(建议D:\VM\Centos7-1-64…

发表回复

您的电子邮箱地址不会被公开。

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