本文主要是介绍基于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, 波特率: 500kbpsc.set_can_board_configuration(can_type="usb_can_2eu",can_idx=0,chn=0,baud_rate=500)#打开CAN卡'c.open_new()# 注意发送函数默认发送数据长度为8个字节# 发送标准帧 id 为0x110data = [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
这篇关于基于Python的周立功CAN上位机(详细教程)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!