OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: whj467467274672

CANOPEN协议栈的移植以及使用

  [复制链接]

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
发表于 2019-4-4 16:43:42 | 显示全部楼层
墨香余味 发表于 2019-4-4 09:51
你好,我想知道这段代码在哪里呀    哪个文件有呢

对象字典生成的TestSalve.c文件,感觉你都没有把文件大致浏览了,楼主前面其实也有提到。感觉你这样的问,可能没人想回答你。
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

1

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2019-3-28
在线时间
14 小时
发表于 2019-4-8 08:44:14 | 显示全部楼层
NewGuard 发表于 2019-4-4 16:43
对象字典生成的TestSalve.c文件,感觉你都没有把文件大致浏览了,楼主前面其实也有提到。感觉你这样的问 ...

。。。。我看了好几个地方的,都没有找到。这个文件不是没有嘛。
回复 支持 反对

使用道具 举报

1

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2019-3-28
在线时间
14 小时
发表于 2019-4-8 09:06:42 | 显示全部楼层
NewGuard 发表于 2019-4-4 16:43
对象字典生成的TestSalve.c文件,感觉你都没有把文件大致浏览了,楼主前面其实也有提到。感觉你这样的问 ...

恩,找到了,在python里面
回复 支持 反对

使用道具 举报

1

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2019-3-28
在线时间
14 小时
发表于 2019-4-10 09:01:03 | 显示全部楼层
NewGuard 发表于 2019-1-3 16:24
1.TimeDispatch()在ms定时器里调用就需要管理了吧
2.canDispatch()怎么用,怎么才能和固件CAN的发送 ...

你好,大侠,你的固件平台和usbcan的库函数兼容吗?
我的怎么报错无法解析呢,换成一般的应用程序就不报错
回复 支持 反对

使用道具 举报

1

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2019-3-28
在线时间
14 小时
发表于 2019-4-17 19:54:00 | 显示全部楼层
墨香余味 发表于 2019-4-8 09:06
恩,找到了,在python里面

你好,大侠!你用板子发数据给can分析仪,可以到吗?有例子吗,谢谢
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2019-4-18
在线时间
21 小时
发表于 2019-4-28 22:48:07 | 显示全部楼层
详细,学习了
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-4-29
在线时间
6 小时
发表于 2019-4-29 17:17:38 | 显示全部楼层
楼主你好,刚接触32的控制,现需要用PDO报文对电机进行控制,是否必须需要进行CAN open协议的移植,用的是STM32F429
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2019-4-30 08:43:58 | 显示全部楼层
钟斌 发表于 2019-4-29 17:17
楼主你好,刚接触32的控制,现需要用PDO报文对电机进行控制,是否必须需要进行CAN open协议的移植,用的是S ...

需要。字数补丁
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-4-29
在线时间
6 小时
发表于 2019-4-30 16:08:47 | 显示全部楼层

移植完之后可以直接调用库函数进行命令发送是吗?大神由原代码分享吗?
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2019-4-30 22:30:09 | 显示全部楼层
钟斌 发表于 2019-4-30 16:08
移植完之后可以直接调用库函数进行命令发送是吗?大神由原代码分享吗?

不是。没有。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2019-4-18
在线时间
21 小时
发表于 2019-5-4 16:17:37 | 显示全部楼层
正在学习中,很详细,消化消化
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2019-5-14
在线时间
73 小时
发表于 2019-5-15 07:55:52 | 显示全部楼层
厉害!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2019-5-14
在线时间
73 小时
发表于 2019-5-19 15:29:40 | 显示全部楼层
牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛牛
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-6-4
在线时间
7 小时
发表于 2019-6-10 17:15:27 | 显示全部楼层
你好,我想问一下我这个为什么运行setNodeId函数中的if((*(UNS32*)d->objdict[offset].pSubindex[1].pObject == ((UNS32)0x600) + *d->bDeviceNodeId)||(*d->bDeviceNodeId==0xFF))就会进入中断啊?
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2019-6-11 08:55:43 | 显示全部楼层
德勇 发表于 2019-6-10 17:15
你好,我想问一下我这个为什么运行setNodeId函数中的if((*(UNS32*)d->objdict[offset].pSubindex[1].pObjec ...

不知道
回复 支持 反对

使用道具 举报

7

主题

88

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
273
金钱
273
注册时间
2015-1-10
在线时间
69 小时
发表于 2019-6-12 13:52:06 | 显示全部楼层
很好的帖子,赞一下,留个标记
回复 支持 反对

使用道具 举报

0

主题

64

帖子

0

精华

高级会员

Rank: 4

积分
714
金钱
714
注册时间
2012-6-27
在线时间
69 小时
发表于 2019-6-13 11:59:33 | 显示全部楼层
收藏一下
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-6-13
在线时间
8 小时
发表于 2019-6-13 15:34:18 | 显示全部楼层
C:\Users\Administrator\Desktop\TG{94RZ)F9R4LDZ`9CH0O7C
打扰了,在移植过程中,出现了初始化就用不了can的情况。然后定位到 case Pre_operational: 这里有问题。 有人碰到过类似的问题吗?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-8-7
在线时间
5 小时
发表于 2019-10-17 17:10:08 | 显示全部楼层
MARK.....
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2019-10-18 11:07:19 | 显示全部楼层
学习学习in 发表于 2019-6-13 15:34
打扰了,在移植过程中,出现了初始化就用不了can的情况。然后定位到 case Pre_operational: 这里有问题。 ...

没有。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-11-13
在线时间
16 小时
发表于 2019-11-15 15:38:38 | 显示全部楼层
楼主,那三个软件能不能发我一份,谢谢了  ,1031023498@qq.com
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-11-13
在线时间
16 小时
发表于 2019-11-15 16:52:32 | 显示全部楼层
whj467467274672 发表于 2017-12-31 16:45
通过以上步骤处理掉所有错误,对于源码的操作已经结束了,下面就是我们的底层的操作了。
接下来实现刚才定 ...

又一个是od文件
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2019-11-16 08:57:22 | 显示全部楼层

哪个文件?
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2019-11-13
在线时间
16 小时
发表于 2019-11-16 14:39:31 | 显示全部楼层
可以发一份你写的canopen原码吗 谢谢  我照着你做的做 还是有很多错
回复 支持 反对

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-11-16 15:05:37 | 显示全部楼层
顶你一下     
成功没有捷径
回复 支持 反对

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-11-16 15:05:59 | 显示全部楼层
感谢楼主分享!!!!
成功没有捷径
回复 支持 反对

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-9-25
在线时间
39 小时
发表于 2019-11-16 16:17:48 | 显示全部楼层
雨天Al2 发表于 2018-10-16 08:18
谢谢你的回答。        我在移植的时候遇到一个问题,上电后,板子按照我设置的心跳时间给我发送状态,但 ...

你好,大侠,我也是按照楼主的资源做了一个F407的CANopen,但是编译成功,烧录到板子上再用USB-CAN监视没有反应,也没有BOOTUP报文,CAN适配器也没有反应,请问你是怎么移植的,楼主的canfestival和main是直接用的么,还是要添加东西,不好意思,我才接触这方面两个月,就要做canopen,实在无奈。求大侠指点
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2019-11-16 22:34:12 | 显示全部楼层
hhyjyjd447 发表于 2019-11-16 14:39
可以发一份你写的canopen原码吗 谢谢  我照着你做的做 还是有很多错

那里出错了啊
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2019-11-16 22:35:03 | 显示全部楼层
宝石1234 发表于 2019-11-16 16:17
你好,大侠,我也是按照楼主的资源做了一个F407的CANopen,但是编译成功,烧录到板子上再用USB-CAN监视没 ...

CANOPEN协议栈启动了吗
回复 支持 反对

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-9-25
在线时间
39 小时
发表于 2019-11-20 09:57:35 | 显示全部楼层
whj467467274672 发表于 2019-11-16 22:35
CANOPEN协议栈启动了吗

没有吧,做的是一个从站,节点上线也没有报文,CAN适配器上也没有报文收发的亮灯
回复 支持 反对

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-9-25
在线时间
39 小时
发表于 2019-11-20 09:59:38 | 显示全部楼层
whj467467274672 发表于 2019-11-16 22:35
CANOPEN协议栈启动了吗

不清楚怎么启动,candispatch()用到了应该就是启动协议栈了吧
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-12-23
在线时间
2 小时
发表于 2019-12-24 11:51:38 | 显示全部楼层
正在探索CAN OPEN,一头雾水
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2019-12-23
在线时间
2 小时
发表于 2019-12-24 18:16:50 | 显示全部楼层
CanFestival-3-10\examples\TestMasterSlave目录下找不到TestSlave.c,TestMaster.c
但有Slave.c,Master.c
回复 支持 反对

使用道具 举报

1

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-9-25
在线时间
39 小时
发表于 2019-12-25 14:48:20 | 显示全部楼层
zixialang 发表于 2019-12-24 18:16
CanFestival-3-10\examples\TestMasterSlave目录下找不到TestSlave.c,TestMaster.c
但有Slave.c,Master.c

谢谢楼主的教程,成功出现象了,你把OD 文件导入到哪个python的对象字典编辑器objedict里面,然后建立字典就可以生成c和h文件
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2020-1-17
在线时间
2 小时
发表于 2020-1-17 16:27:57 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2019-7-6
在线时间
6 小时
发表于 2020-2-21 02:09:59 | 显示全部楼层
谢谢分享,太好了。我一直没有高明白 CAN协议发送大字节数据包怎么处理。
回复 支持 反对

使用道具 举报

0

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2019-9-24
在线时间
33 小时
发表于 2020-2-25 14:34:47 | 显示全部楼层
赞                     
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2020-2-25 14:56:50 | 显示全部楼层
夏利涛 发表于 2020-2-21 02:09
谢谢分享,太好了。我一直没有高明白 CAN协议发送大字节数据包怎么处理。

SDO分段发
回复 支持 反对

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
482
金钱
482
注册时间
2017-10-31
在线时间
90 小时
发表于 2020-3-9 17:46:26 | 显示全部楼层
好帖 爱了
回复 支持 反对

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
482
金钱
482
注册时间
2017-10-31
在线时间
90 小时
发表于 2020-3-10 17:22:03 | 显示全部楼层
tonghan2009 发表于 2019-1-9 13:47
嗯嗯,确实是,谢谢

老哥,怎末配置映射的地址
回复 支持 反对

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
482
金钱
482
注册时间
2017-10-31
在线时间
90 小时
发表于 2020-3-14 16:37:28 | 显示全部楼层
whj467467274672 发表于 2019-1-15 08:50
第一个心跳的问题,你看下我前面给别人的回答,有个地方需要修改定时器的最大计数器,你看看你用的是不是 ...

引用:第三个问题,如何控制LED,假如你在对象字典里有一个变量,初始值是00,那么你可以通过发送SDO的方式来修改这个变量的值,你在程序里判断变量不为0的时候LED就点亮。

问题:通过发送SDO的方式来修改这个变量的值       是不是全部都是主机来发这个指令

问题:在程序里判断变量不为0的时候LED就点亮       那一定是从机进行判断 那从机是怎末判断的呀   

求告知  谢谢
回复 支持 1 反对 0

使用道具 举报

1

主题

192

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2014-4-14
在线时间
104 小时
发表于 2020-3-14 17:14:02 | 显示全部楼层
MARK一下
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2020-3-15 10:23:39 | 显示全部楼层
未来你好 发表于 2020-3-14 16:37
引用:第三个问题,如何控制LED,假如你在对象字典里有一个变量,初始值是00,那么你可以通过发送SDO的方 ...

假设1主机 2从机  3从机,3号从机也可以发送SDO来控制2号从机的LED。

if(变量 == 1)
{
点亮LED
}
else{
关闭LED
}
回复 支持 反对

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
482
金钱
482
注册时间
2017-10-31
在线时间
90 小时
发表于 2020-3-16 14:11:41 | 显示全部楼层
whj467467274672 发表于 2020-3-15 10:23
假设1主机 2从机  3从机,3号从机也可以发送SDO来控制2号从机的LED。

if(变量 == 1)

你好 谢谢你的回答  可能是我没有问清楚,我想问的是 按照你说的 控制2号从机的led   2号机 是怎末知道控制自己灯的变量改变了
回复 支持 反对

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
482
金钱
482
注册时间
2017-10-31
在线时间
90 小时
发表于 2020-3-16 15:22:25 | 显示全部楼层
本帖最后由 未来你好 于 2020-3-16 15:25 编辑
whj467467274672 发表于 2020-3-15 10:23
假设1主机 2从机  3从机,3号从机也可以发送SDO来控制2号从机的LED。

if(变量 == 1)

601 2F 40 60 00 0F 00 00 00 假设这就是我点灯的地址  6040   00   写入一个非0的值    (0灭灯   非0 开灯)    那末从机2   自己是怎末知道的 这个地址的变量已经改变了  它需要执行亮灯操作了
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2020-3-16 18:36:45 | 显示全部楼层
未来你好 发表于 2020-3-16 15:22
601 2F 40 60 00 0F 00 00 00 假设这就是我点灯的地址  6040   00   写入一个非0的值    (0灭灯   非0  ...

收到报文,协议栈分析处理,修改对象字典里面的数据。你去判断对象字典里面的数据
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-3-16
在线时间
2 小时
发表于 2020-3-16 19:57:09 | 显示全部楼层
资料真不错  谢谢
回复 支持 反对

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
482
金钱
482
注册时间
2017-10-31
在线时间
90 小时
发表于 2020-3-17 14:19:03 | 显示全部楼层
whj467467274672 发表于 2020-3-16 18:36
收到报文,协议栈分析处理,修改对象字典里面的数据。你去判断对象字典里面的数据

怎末去判断对象字典里面的数据   可以截个图让我看看你怎末处理的嘛   谢谢
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
 楼主| 发表于 2020-3-18 13:59:22 | 显示全部楼层
未来你好 发表于 2020-3-17 14:19
怎末去判断对象字典里面的数据   可以截个图让我看看你怎末处理的嘛   谢谢

    if(TEST[0]){
        GPIO_SetBits(GPIOF,GPIO_Pin_10);
    }
    else{
        GPIO_ResetBits(GPIOF,GPIO_Pin_10);
    }
回复 支持 反对

使用道具 举报

6

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
482
金钱
482
注册时间
2017-10-31
在线时间
90 小时
发表于 2020-3-18 15:50:26 | 显示全部楼层
whj467467274672 发表于 2020-3-18 13:59
if(TEST[0]){
        GPIO_SetBits(GPIOF,GPIO_Pin_10);
    }

这个数组应该是你自己定义的吧  它什末时候被赋值的  在哪被赋值的
这个判断是不是  放在自己定义的一个子函数里一直再刷新的?还是对象字典的数据改变一次处理一次
(感觉你要打我了我都感觉到自己招人烦了   楼主请收下我的膝盖    )
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表