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

您所在的位置:网站首页 can总线教程 基于Python的周立功CAN上位机(详细教程)

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

2023-09-09 01:27| 来源: 网络整理| 查看: 265

摘要: 目前关于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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3