OpenEdv-开源电子网

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

CANopen (canfestival)移植STM32F4 的学习分享讨论帖

  [复制链接]

13

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2012-6-28
在线时间
13 小时
发表于 2017-10-30 16:29:23 | 显示全部楼层
Ldd69stm32 发表于 2017-8-10 11:07
楼主你好。最近想自己做个控制器通过CANopen控制汇川的伺服驱动器,能和你交流吗。谢谢了

我最近也在做驱动伺服驱动器的CANOPEN  而且是多个  能交流下吗  留个QQ呢
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

32

主题

230

帖子

0

精华

高级会员

Rank: 4

积分
508
金钱
508
注册时间
2016-4-14
在线时间
113 小时
发表于 2017-11-1 10:53:41 | 显示全部楼层
xinhui 发表于 2017-10-30 16:29
我最近也在做驱动伺服驱动器的CANOPEN  而且是多个  能交流下吗  留个QQ呢

1454014228
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2017-10-20
在线时间
8 小时
发表于 2017-11-1 16:51:22 | 显示全部楼层
您好,我现在打算用32控制canopen的电机,意思是把你发那个主站的DEMO下载进32 里就能实现控制了吗
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-11-3 08:59:42 | 显示全部楼层
好东西顶一个
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-11-6 09:59:19 | 显示全部楼层
Code.Stm32f407CanopenMaster.zip出现了错误,这里标记一下。Undefined symbol start_and_seek_node (referred from dcf.o), L6218E: Undefined symbol start_node (referred from dcf.o).如果我能找到解决办法我就上传过来,不行的话,忘后面大神帮忙分析。
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-11-7 16:34:51 | 显示全部楼层
whj467467274672 发表于 2017-11-6 09:59
Code.Stm32f407CanopenMaster.zip出现了错误,这里标记一下。Undefined symbol start_and_seek_node (refe ...

说这两个函数未定义,在头文件定义一下就好了。
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-11-12 17:48:43 | 显示全部楼层
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-11-13 19:50:06 | 显示全部楼层
whj467467274672 发表于 2017-11-12 17:48
简单明了https://wenku.baidu.com/view/b1a48bc5112de2bd960590c69ec3d5bbfd0adaea.html

路过的哪个大神,能给我解释一下,怎么确定心跳时间间隔的。
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-11-13 23:16:24 | 显示全部楼层
whj467467274672 发表于 2017-11-13 19:50
路过的哪个大神,能给我解释一下,怎么确定心跳时间间隔的。

TimeDispatch这个函数是什么意思呢
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-11-14 10:55:44 | 显示全部楼层
whj467467274672 发表于 2017-11-13 23:16
TimeDispatch这个函数是什么意思呢

/* index 0x1017 :   Producer Heartbeat Time. */
                    UNS16 TestSlave_obj1017 = 0x0;        /* 0 */
                    ODCallback_t TestSlave_Index1017_callbacks[] =
                     {
                       NULL,
                     };
                    subindex TestSlave_Index1017[] =
                     {
                       { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1017 }
                     };
还是没明白心跳时间是怎么确定的
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-11-14 11:28:07 | 显示全部楼层
鱼儿乐 发表于 2016-8-12 15:46
**** 作者被禁止或删除 内容自动屏蔽 ****

请问如何确定心跳时间是125MS的倍数
回复 支持 反对

使用道具 举报

13

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2012-6-28
在线时间
13 小时
发表于 2017-11-25 14:02:20 | 显示全部楼层
bestplayer 发表于 2017-8-10 10:09
楼主,想请教一个具体的问题,就是PDO的事件触发发送时,这个事件类型怎么定义啊?就是我把EVENT timer的值 ...

可以给我你的QQ吗   交流下  我的313641728
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1895
金钱
1895
注册时间
2017-11-28
在线时间
140 小时
发表于 2017-11-28 19:33:28 | 显示全部楼层
谢谢资料分享,学习了
回复 支持 反对

使用道具 举报

16

主题

146

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7125
金钱
7125
注册时间
2015-1-23
在线时间
104 小时
发表于 2017-12-23 11:01:05 | 显示全部楼层
个人已经看了一个星期的文档了   还是没有头绪  看的头大 索引好多啊  
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2014-3-18
在线时间
5 小时
发表于 2017-12-29 09:14:36 | 显示全部楼层
看来这个CANopen协议还是挺复杂的,文档资料那么多
电机设计与控制
回复 支持 反对

使用道具 举报

27

主题

427

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
4355
金钱
4355
注册时间
2017-5-30
在线时间
577 小时
发表于 2017-12-29 22:31:05 | 显示全部楼层
学海无涯不回头 发表于 2017-12-29 09:14
看来这个CANopen协议还是挺复杂的,文档资料那么多

别怕,我用了40天就弄好了
回复 支持 反对

使用道具 举报

6

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2016-7-7
在线时间
17 小时
发表于 2018-2-6 16:29:36 | 显示全部楼层
xinhui 发表于 2017-11-25 14:02
可以给我你的QQ吗   交流下  我的313641728

2271386302
回复 支持 反对

使用道具 举报

160

主题

966

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2095
金钱
2095
注册时间
2014-3-7
在线时间
490 小时
发表于 2018-9-4 15:48:27 | 显示全部楼层
可以大概说一下你的程序的思路吗?或者常调用的函数在哪个文件
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-10-10
在线时间
5 小时
发表于 2018-10-10 23:04:31 | 显示全部楼层
你好!
       我最近在学习canopen的canfestival,按照网上的移植方法移植到安富莱的429板子上,做的从机,心跳1017h中心跳时间设置为0x03B8,也就是想1S发送一次心跳。
      我给板子上电后,板子发送boot-up,然后进入pre-operational状态,板子1S发送一次心跳,数据为7F,表示正处在pre-operational状态。
      我通过can分析仪发送nmt,发送cob-id=000,数据data[0]=0x01,data[1]=node-id后,板子进入operational状态,但是此时发送的心跳是错误的,并不是1S发送一次数据为05的心跳,
     请问这是什么原因造成的?
TIM图片20181010201410.png
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2018-10-10
在线时间
5 小时
发表于 2018-10-10 23:07:48 | 显示全部楼层
本帖最后由 雨天Al2 于 2018-10-10 23:12 编辑
whj467467274672 发表于 2017-12-29 22:31
别怕,我用了40天就弄好了

你好!
        请教一下CANOPEN的问题,        1. 那个timerForCan();函数调用能够大概说一下你理解的含义吗?        2. 我在设置好心跳周期,在pre-operational状态时,心跳是正常的,但是进入operational状态后发送的心跳时间间隔就不对,这个能帮忙解释一下这是什么原因造成的吗?

回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2018-4-9
在线时间
30 小时
发表于 2018-11-24 16:33:09 | 显示全部楼层
/* 定时事件触发处理函数 */
void TimeDispatch(void)
{
        TIMER_HANDLE i;
        TIMEVAL next_wakeup = TIMEVAL_MAX;
       
        /* 获取定时器中断到现在已经流逝的时间 */
        UNS32 overrun = (UNS32)getElapsedTime();

        /* 计算出到目前为止真正流逝的时间 */
        TIMEVAL real_total_sleep_time = total_sleep_time + overrun;

        s_timer_entry *row;

        /* 遍历定时事件入口 */
        for(i = 0, row = timers; i <= last_timer_raw; i++, row++)
        {
                /* 如果该定时事件入口被定时事件占用,如判断是否超时 */
                if(row->state & TIMER_ARMED)
                {
                        /* 如果已经超时,则需要触发 */
                        if(row->val <= real_total_sleep_time)
                        {
                                /* 如果该事件为单次触发,则将该事件状态设置为已触发 */
                                if(!row->interval)
                                {
                                        row->state = TIMER_TRIG;
                                }
                                /* 如果该事件为周期触发 */
                                else
                                {
                                        /* 校正定时时间 */
                                        row->val = row->interval - (overrun % (UNS32)row->interval);
                                        /* 状态置为已周期触发 */
                                        row->state = TIMER_TRIG_PERIOD;
                                       
                                        /* 更新定时器唤醒时间 */
                                        if(row->val < next_wakeup)
                                                next_wakeup = row->val;
                                }
                        }
                        /* 没有超时,不需要触发 */
                        else
                        {
                                /* 更新该事件唤醒时间 */
                                row->val -= real_total_sleep_time;

                                /* 更新定时器唤醒时间 */
                                if(row->val < next_wakeup)
                                        next_wakeup = row->val;
                        }
                }
        }

        /* 将得出定时器唤醒时间赋值 */
        total_sleep_time = next_wakeup;

        /* 设置定时器重载值 */
        setTimer(next_wakeup);

        /* 遍历所欲定时事件接口 */
        for(i = 0, row = timers; i <= last_timer_raw; i++, row++)
        {
                /* 如果该事件已经被触发(单次触发/周期触发) */
                if(row->state & TIMER_TRIG)
                {
                        /* 将单次触发更新为空闲,周期触发的更新为被占用 */
                        row->state &= ~TIMER_TRIG;
                       
                        /* 需要触发的事件,调用一下回调函数 */
                        if(row->callback)
                                (*row->callback)(row->d, row->id);
                }
        }
}
回复 支持 反对

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
发表于 2019-1-3 09:40:13 | 显示全部楼层
雨天Al2 发表于 2018-10-10 23:04
你好!
       我最近在学习canopen的canfestival,按照网上的移植方法移植到安富莱的429板子上,做的从机 ...

移植完怎么用起来,我直接懵了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2017-8-12
在线时间
2 小时
发表于 2019-1-9 15:00:32 | 显示全部楼层
whj467467274672 发表于 2017-12-29 22:31
别怕,我用了40天就弄好了

sdo pdo的功能也出来了吗?可以交流一下吗
回复 支持 反对

使用道具 举报

2

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2014-8-22
在线时间
91 小时
发表于 2019-1-24 10:08:21 | 显示全部楼层
NewGuard 发表于 2019-1-3 09:40
移植完怎么用起来,我直接懵了

我也是,移植完了,然后呢
回复 支持 反对

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
发表于 2019-1-24 12:25:53 | 显示全部楼层
本帖最后由 NewGuard 于 2019-1-24 12:28 编辑
zhanghankui 发表于 2019-1-24 10:08
我也是,移植完了,然后呢

我现在也是只能PC和板子对起来,下面的文档可以参考下。

CANopen_easy_begin.pdf

3.01 MB, 下载次数: 1037

回复 支持 反对

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
发表于 2019-1-24 12:36:50 | 显示全部楼层
bestplayer 发表于 2017-8-10 10:09
楼主,想请教一个具体的问题,就是PDO的事件触发发送时,这个事件类型怎么定义啊?就是我把EVENT timer的值 ...

我也想问同样的问题,你解决了吗?我是只在预操作模式切换为操作模式时,会TPDO数据发出来,之后更改变量的值也没作用,不知道为啥?
回复 支持 反对

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
发表于 2019-1-24 18:02:16 | 显示全部楼层
楼主:PDO的事件触发怎么触发,我这边协议类型0xFE和0xFF都试了,在更改映射的变量值时,无法触发相应的TPDO,大概是什么原因?折磨了好久,网上说相应的设备IO改变不就是对应的映射变量值。
回复 支持 反对

使用道具 举报

17

主题

237

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1312
金钱
1312
注册时间
2017-3-1
在线时间
259 小时
发表于 2019-1-25 18:47:27 | 显示全部楼层
zhiwei0 发表于 2016-7-26 16:21
主站好像可以了,设置成从站要怎么弄呢?

问下,主站对从站的操作该怎么做,我有点不知道怎么下手。谢谢
回复 支持 反对

使用道具 举报

1

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2019-3-28
在线时间
14 小时
发表于 2019-4-17 20:10:15 | 显示全部楼层
你好,博主有can报文发送的例子吗?我用can分析仪都没有收到数据呢,求分享,谢谢
回复 支持 反对

使用道具 举报

3

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-3-9
在线时间
17 小时
发表于 2019-4-22 21:37:07 | 显示全部楼层
不错!!!!!!!!!!!!!!!!!!!!
回复 支持 1 反对 0

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2019-5-11
在线时间
0 小时
发表于 2019-5-11 09:29:41 | 显示全部楼层
楼主威武,谢谢分享!!
回复 支持 反对

使用道具 举报

5

主题

63

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-6-15
在线时间
28 小时
发表于 2019-8-10 21:33:32 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

5

主题

63

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2018-6-15
在线时间
28 小时
发表于 2019-8-10 21:36:06 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

该用户已被删除
发表于 2019-11-7 09:47:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

该用户已被删除
发表于 2019-11-7 09:47:50 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-7-23
在线时间
10 小时
发表于 2019-11-8 12:32:53 | 显示全部楼层
相当给力 感谢楼主
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2019-7-23
在线时间
10 小时
发表于 2019-11-8 12:33:34 | 显示全部楼层
NewGuard 发表于 2019-1-24 12:25
我现在也是只能PC和板子对起来,下面的文档可以参考下。

PC和板子对起来 是啥意思?PC当主站吗?谢谢
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-10-24
在线时间
11 小时
发表于 2019-11-8 22:05:10 | 显示全部楼层
请问怎么使用canfestival呢,发送PDO和SDO
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-10-24
在线时间
11 小时
发表于 2019-11-12 23:23:49 | 显示全部楼层
mtk1625 发表于 2019-11-8 12:33
PC和板子对起来 是啥意思?PC当主站吗?谢谢


请问前辈,怎么使用canfestival呢,发送PDO和SDO
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-11-14
在线时间
2 小时
发表于 2019-11-14 17:20:55 | 显示全部楼层
以前的账号不能用了,也没分下了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-11-14
在线时间
2 小时
发表于 2019-11-14 17:21:24 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-11-19
在线时间
2 小时
发表于 2019-11-19 23:15:19 | 显示全部楼层
Canopen涉及内容比较多,感谢分享资料!
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
4
金钱
4
注册时间
2020-1-2
在线时间
1 小时
发表于 2020-1-2 12:39:52 | 显示全部楼层
整体看着文档还是挺多的。。。。
回复 支持 反对

使用道具 举报

0

主题

61

帖子

0

精华

初级会员

Rank: 2

积分
131
金钱
131
注册时间
2019-9-24
在线时间
33 小时
发表于 2020-1-3 07:02:15 来自手机 | 显示全部楼层
mark 谢谢
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2019-12-31
在线时间
7 小时
发表于 2020-2-17 19:59:16 | 显示全部楼层
谢谢分享,最近正在研究,一直在琢磨如何实际应用,参考一下,希望有所收获。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2020-2-1
在线时间
10 小时
发表于 2020-6-19 01:22:01 | 显示全部楼层
dingqilai,顶起来!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-8-30
在线时间
6 小时
发表于 2020-7-10 09:05:02 | 显示全部楼层
第一个打开是KEIL4的吧,用KEIL5打开好多错误
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2011-7-11
在线时间
24 小时
发表于 2020-8-16 14:18:29 | 显示全部楼层
非常美好的论坛,以后要多参与
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2013-6-7
在线时间
8 小时
发表于 2020-9-3 14:50:02 | 显示全部楼层
能分享一下103/105的代码吗?2990527676@qq.com
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2020-10-6
在线时间
8 小时
发表于 2020-10-7 12:09:40 | 显示全部楼层
谢谢各位分享 继续学习。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 05:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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