打印
[应用相关]

CanFestival移植到STM32

[复制链接]
5347|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dingbo95|  楼主 | 2018-6-28 22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dingbo95 于 2018-6-28 22:27 编辑

详细的移植过程后面回补上。

1.  到网上下载CanFestival源码CanFestival-3-10,解压出来,并将文件夹名字改为CanFestival-3-10。移植需要用到的源文件在CanFestival-3-10\src目录下,头文件在CanFestival-3-10\include目录下。
沙发
dingbo95|  楼主 | 2018-6-28 22:26 | 只看该作者
2.        在新建好的工程目录下新建文件夹CanFestival,再在CanFestival下新建文件夹driver、inc和src,再在inc文件夹下面新建stm32文件夹。

使用特权

评论回复
板凳
dingbo95|  楼主 | 2018-6-28 22:27 | 只看该作者
3.        将CanFestival-3-10\src目录下的dcf.c、emcy.c、lifegrd.c、lss.c、nmtMaster.c、nmtSlave.c、objacces.c、pdo.c、sdo.c、states.c、sync.c、timer.c共12个文件拷贝到  CanFestival\src目录下

使用特权

评论回复
地板
dingbo95|  楼主 | 2018-6-28 22:28 | 只看该作者
4.        将CanFestival-3-10\include目录下的所有.h文件共19个文件全部拷贝到CanFestival\inc目录下

使用特权

评论回复
5
dingbo95|  楼主 | 2018-6-28 22:28 | 只看该作者
5.        把CanFestival-3-10\examples\AVR\Slave目录下的ObjDict.h文件拷贝CanFestival\inc目录下,一共20个

使用特权

评论回复
6
dingbo95|  楼主 | 2018-6-28 22:28 | 只看该作者
6.将CanFestival-3-10\include\AVR目录下的applicfg.h、canfestival.h、config.h、timerscfg.h共4个头文件拷贝到canfestival\inc\stm32 目录下;

使用特权

评论回复
7
dingbo95|  楼主 | 2018-6-28 22:29 | 只看该作者
7.        将CanFestival-3-10\examples\TestMasterSlave目录下的TestSlave.c TestSlave.h、TestMaster.h、TestMaster.c拷贝到canfestival\driver目录下,并在该目录下新建 stm32_canfestival.c文件。

使用特权

评论回复
8
dingbo95|  楼主 | 2018-6-28 22:31 | 只看该作者
8.        将CanFestival\src目录下的所有.c文件添加到工程;

使用特权

评论回复
9
dingbo95|  楼主 | 2018-6-28 22:32 | 只看该作者
9.        将canfestival\driver目录下的stm32_canfestival.c文件添加到工程;如果实现的是从设备,再将  canfestival\driver目录下的TestSlave.c文件添加到工程,如果实现的是主设备,则将TestMaster.c文件添加到工程。

使用特权

评论回复
10
dingbo95|  楼主 | 2018-6-28 22:32 | 只看该作者
10.        将文件目录canfestival\inc、canfestival\inc\stm32、canfestival\driver等路径添加到工程包含路径。

使用特权

评论回复
11
dingbo95|  楼主 | 2018-6-28 22:32 | 只看该作者
11.        在stm32_canfestival.c中包含头文件#include "canfestival.h",并定义如下函数:
            void setTimer(TIMEVAL value)
           {
                                                }
           TIMEVAL getElapsedTime(void)
           {
                   return 1;
                                                }

             unsigned char canSend(CAN_PORT notused, Message *m)
            {
                  return 1;

使用特权

评论回复
12
dingbo95|  楼主 | 2018-6-28 22:33 | 只看该作者
为什么要添加两个空函数,后面再给大家解释。

使用特权

评论回复
13
yklstudent| | 2018-6-29 09:50 | 只看该作者
楼主这是在挤牙膏吗?速度点啊

使用特权

评论回复
14
Varus| | 2018-6-29 21:10 | 只看该作者
就这些吗?是不是还没有发完??

使用特权

评论回复
15
dingbo95|  楼主 | 2018-6-30 11:53 | 只看该作者
Varus 发表于 2018-6-29 21:10
就这些吗?是不是还没有发完??

图片教程还没加

使用特权

评论回复
16
dingbo95|  楼主 | 2018-6-30 11:54 | 只看该作者
yklstudent 发表于 2018-6-29 09:50
楼主这是在挤牙膏吗?速度点啊

你要学CANopen?

使用特权

评论回复
17
stm32jy| | 2018-6-30 15:52 | 只看该作者
楼主快点更新,最近也在学习CAN OPEN协议,感觉挺难的。

使用特权

评论回复
18
stm32jy| | 2018-6-30 15:53 | 只看该作者
有没有移植好的代码让我们参考下,STM32作为从机或者主机的。

使用特权

评论回复
19
yklstudent| | 2018-6-30 22:26 | 只看该作者

移植是一个方面,关键后续怎么调试和测试呢

使用特权

评论回复
20
dingbo95|  楼主 | 2018-7-15 19:14 | 只看该作者
yklstudent 发表于 2018-6-30 22:26
移植是一个方面,关键后续怎么调试和测试呢

这方面的资料不是很多,参考源码与周立功的书籍

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

1197

帖子

5

粉丝