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


相关推荐

  • 从贝叶斯方法谈到贝叶斯网络语言_深度贝叶斯网络

    从贝叶斯方法谈到贝叶斯网络语言_深度贝叶斯网络从贝叶斯方法谈到贝叶斯网络0引言事实上,介绍贝叶斯定理、贝叶斯方法、贝叶斯推断的资料、书籍不少,比如《数理统计学简史》,以及《统计决策论及贝叶斯分析JamesO.Berger著》等等,然介绍贝叶斯网络的中文资料则非常少,中文书籍总共也没几本,有的多是英文资料,但初学者一上来就扔给他一堆英文论文,因无基础和语言的障碍而读得异常吃力导致无法继续读下去则是非…

    2022年10月19日
    3
  • 电脑开机显示“DISK Boot Failure,Insert System Disk And Press Enter”

    电脑开机显示“DISK Boot Failure,Insert System Disk And Press Enter” 电脑开机自检时无法通过,并在界面出现“DISKBootFailure,InsertSystemDiskAndPressEnter”的错误提示。这样的问题该如何解决?今天小编教大家如何排除故障。 造成电脑开机,屏幕上出现“DISKBootFailure,InsertSystemDiskAndPressEnter”故障的原因有: (1)由于硬盘,光驱连在同一条数据线上,但…

    2022年7月13日
    56
  • 俄罗斯方块(C语言实现)

    俄罗斯方块(C语言实现)文章目录游戏说明游戏效果展示游戏代码游戏代码详解游戏框架构建隐藏光标光标跳转初始化界面初始化方块信息颜色设置画出方块空格覆盖合法性判断游戏主体逻辑函数判断得分与结束主函数游戏说明俄罗斯方块相信大家都知道,这里就不再介绍什么游戏背景了,我这里对本代码实现的俄罗斯方块作一些说明:按方向键的左右键可实现方块的左右移动。按方向键的下键可实现方块的加速下落。按空格键可实现方块的顺时针旋转。按Esc键可退出游戏。按S键可暂停游戏,暂停游戏后按任意键继续游戏。按R键可重新开始游戏。除此之外,本游戏还

    2022年5月19日
    39
  • 心形线的图形_心形线公式

    心形线的图形_心形线公式心形线,是一个圆上的固定一点在它绕着与其相切且半径相同的另外一个圆周滚动时所形成的轨迹,因其形状像心形而得名。当然我觉得与其说它像心,还不如说它像屁股。相关软件参见:数学图形可视化工具,使用自己定义语

    2022年8月1日
    3
  • Oracle插入(insert into)

    Oracle插入(insert into)Oracle插入(insertinto)转载:http://www.oraclejsq.com/article/010100199.htmlOracle对表数据的插入是使用insert命令来执行

    2022年7月1日
    20
  • 用EasyBoot轻松做启动光盘

    用EasyBoot轻松做启动光盘原文转自:电脑技术资料园BrianLiu学习之园原版系统安装盘的缺憾——不管是Windows98还是WindowsNT/2000/XP,仅能实现单一系统的初始安装,缺少调试维护、系统恢复、DOS杀毒等工具。虽然市面上出现了N合1光盘,但一般体积庞大,且无法满足自己的需要。  用EasyBoot刻盘正好可以解决这个问题。EasyBoot是一款集成…

    2022年7月26日
    3

发表回复

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

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