2、Cubemx_canfestival对象字典生成工具环境搭建

本文介绍了如何在Linux环境下搭建CANfestival对象字典生成工具,包括安装Python2.7和wxpython2.8,解压并配置相关文件,创建对象字典,以及在STM32F429的CAN1上配置波特率和中断。还提到了Keil工程中添加文件和编写CANopen驱动函数的方法,以及在中断回调函数中调用CanOpen_DispatchFromISR()。最后提到PDO和SDO配置的研究,并邀请读者交流讨论。
摘要由CSDN通过智能技术生成

百度云盘链接:

链接:canfestival安装包 提取码:z5i4

1.canfestival对象字典生成工具环境搭建
软件是用python写的,由于版本较老,建议在虚拟机上安装python2.7 + wxpython2.8环境
先安装python2.7
在这里插入图片描述

2.python安装完成后添加环境变量
在这里插入图片描述

在命令提示符中输入python后回车,若出现版本号,则python安装完成
在这里插入图片描述

3.安装wxpython2.8
在这里插入图片描述

一路next即可。
4.解压Mongo-canfestival-3-asc.zip压缩包
在这里插入图片描述

5.再解压objdictgen目录下的Gnosis_Utils-current.tar.gz
在这里插入图片描述
在这里插入图片描述

将第6步解压目录下的gnosis文件夹拷贝到objdictgen目录下
在这里插入图片描述
在这里插入图片描述

双击objdictedit.py,若弹出对象字典编辑窗口,则说明环境搭建成功

在这里插入图片描述

7.这里新建一个1s发送1次心跳的主站对象字典,名字是“DPCRMaster”(也可以根据需要改成其他名字)。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

之后会得到1个对象字典文件(*od,相当于一个工程文件,方便下次再此基础上编辑),1个c文件,1个h文件

接下来是canfestival的源码移植步骤
,以STM32F429的CAN1为例。

在这里插入图片描述
在这里插入图片描述

配置波特率500K 打开接收中断。
定时器7配置,10us加1,使能中断

在这里插入图片描述
在这里插入图片描述

canopen文件夹目录结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其中CANopen\app文件夹下的config.h文件来自Canfestival->include->AVR
Canopen_drv.c和canopen.h自己建立,DPCRMaster.c DPCRMaster.h来自刚才建立的对象字典
在这里插入图片描述

Config.h做下面的修改
在这里插入图片描述

CANOpen\inc目录下19个.h头文件,来自Canfestival->include下目录19个头文件

在这里插入图片描述

CANOpen\inc\stm32目录下3个.h头文件来自Canfestival->include\cm4;
其中canfestival.h文件是函数接口定义(声明),函数内容需要自己实现(位于:app\canopen目录下canopen_drv.c);
在这里插入图片描述

CANOpen\src目录下12个.c源文件,来自Canfestival->src目录下的12个源文件;
其中需要删除dcf.c文件下第59、98行前面的“inline”关键字;

在这里插入图片描述
Canfestival.h添加防止递归包含的宏定义
在这里插入图片描述
在Keil工程中添加文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加头文件路径
在这里插入图片描述
然后是写canopen相关的驱动函数,在canopen_drv.c中实现
在这里插入图片描述
在这里插入图片描述

其中CanOpen_DispatchFromISR();函数在定时器7更新中断回调函数中调用
在这里插入图片描述

建立can的发送和接收线程,发送和接收的内容通过消息队列传递

在这里插入图片描述
在这里插入图片描述

节点初始化后 用CAN分析仪观察,可以看到发出的上线报文、网络管理报文和1s一次的心跳数据

在这里插入图片描述

对象字典配置工具中的PDO SDO配置方法还在研究中,,欢迎交流讨论。。

bsp_can.h


                
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值