CAN
文章平均质量分 72
yy123xiang
这个作者很懒,什么都没留下…
展开
-
GD32 CAN搭配HAL库使用的问题
CAN初始化时,程序会在函数HAL_CAN_Init执行时报错,仿真发现是在等待初始化确认时超时导致。查阅了ST和GD的参考手册,二者对初始化确认位的描述并无差异,推测是GD的bug。ST的描述,见下图:GD的描述,见下图:对此,解决办法是屏蔽掉对初始化确认位的检测,需注释掉stm32f4xx_hal_can.c文件中的部分代码,如下: /* Wait initialisation acknowledge */// while ((hcan->Instance->MSR &.原创 2022-05-24 11:21:52 · 2772 阅读 · 4 评论 -
使用CANopen for Python发送SDO读取数据
最近打算用Python做一个CANopen的主站,在此使用CANopen for Python做了一个SDO读取数据的测试例程。其发送数据使用了python-can,可参考上一篇博文《调用python-can库使用周立功CAN接口卡发送数据》。以USBCAN-2E-U接口卡,500k波特率,发送SDO为例,代码如下:import canopenimport timenetwork = canopen.Network()network.connect(bustype='canalystii',原创 2020-06-25 23:52:09 · 1669 阅读 · 0 评论 -
调用python-can库使用周立功CAN接口卡发送数据
查阅python-can文档,知晓其支持部分周立功CAN接口卡,故写例程验证数据的发送。另外,使用的python版本为3.4,在安装python-can时提示找不到windows-curses对应版本的安装包,故在python-can的setup.py中,取消了windows-curses的安装依赖。代码如下(ControlCAN.dll需放置在相同路径下):from __future__ import print_functionimport platformimport candef sen原创 2020-06-24 12:21:05 · 5305 阅读 · 1 评论 -
Python调用周立功CAN接口卡接口库函数(接收数据)
上篇博文《Python调用周立功CAN接口卡接口库函数》仅做了发送数据例程,有网友在测试接收时出现了问题,在此给出自己的接收数据代码。在此需要强调的是,因为经济水平有限,自己所使用的CAN接口卡为第三方兼容周立功函数库的接口卡,经测试,第三方CAN接口卡VCI_Receive接收函数其参数WaitTime是无效的,即使该值为-1,也不会阻塞等待数据,若使用周立功原版接口卡则无此问题。以USBCAN-2E-U接口卡,1000k波特率,接收一帧数据并打印为例,代码如下:import platformim原创 2020-06-19 12:11:39 · 4685 阅读 · 17 评论 -
Python调用周立功CAN接口卡接口库函数
偶尔会用到周立功CAN接口卡,于是试着使用Python调用其接口函数。查阅CAN测试软件与接口函数使用手册,只讲述了VC和VB的调用方法。在这里通过ctypes模块导入动态链接库并访问动态链接库中的函数。 以USBCAN1接口卡,500k波特率,发送一帧数据为例,代码如下:from ctypes import *class _VCI_INIT_CONFIG(Structure): ...原创 2018-03-22 16:16:09 · 13626 阅读 · 33 评论 -
从零开始新建符合CiA DS301的对象字典EDS文件
EDS编辑器选用CANeds 3.6,可在Vector官网下载。通过File -> New,在弹出的窗口中选择*.eds,点击OK,即可新建eds文件,如下图所示: 通过Database -> Edit List,在弹出的窗口中仅需选中v301.codb,点击OK,即确保对象字典数据库中仅包含DS301所需的对象;将数据库的对象依次复制粘贴至EDS文件中,注意在SDP Pa...原创 2018-04-22 11:15:46 · 8914 阅读 · 2 评论 -
在QTreeView中显示EDS文件的部分内容
使用开源的CANopen for Python可以轻松的读取EDS文件中的内容,在此以从零开始新建符合CiA DS301的对象字典EDS文件中创建的EDS文件作为示例,加载后的效果如下图所示: 因为代码非常简单,在此仅贴出代码而不作说明,代码如下:import canopenimport sysfrom PyQt5.QtWidgets import (QApplication, Q...原创 2018-04-22 22:55:45 · 967 阅读 · 0 评论 -
使用Objdictedit生成CanFestival所需的对象字典文件
安装Beremiz,Objdictedit是其中的一个工具,但在新版本中该工具似乎被取消了,在此以Beremiz-1.01为例,安装完成后如下图所示: 以从零开始新建符合CiA DS301的对象字典EDS文件中创建的EDS文件为例,使用CANeds将1800sub6 SYNC start value删除,同理将1801sub6,1802sub6,1803sub6删除,否则使用Objdicte...原创 2018-06-13 12:12:32 · 5969 阅读 · 0 评论 -
CanFestival移植至战舰STM32F1开发板
使用STM32CubeMX新建一个工程,仅需对CAN、RCC、SYS做若干简单的配置即可,CAN波特率配置为500k,点击Project -> Generate Code生成Keil工程与代码;在CanFestival官网下载最新版的源代码,在工程目录下新建CanFestival文件夹,将相应的文件拷入其中,其中ObjDict.c,ObjDict.h在博文使用Objdictedit生成C...原创 2018-06-13 16:18:18 · 2823 阅读 · 2 评论