
CANopen从站在stm32上的实现
文章平均质量分 88
基于canfestival的CANopen从站在stm32f407上的移植
gyggzg
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
4.canfestival-TimeDispatch
在timer.h中有两个函数需要去实现,setTimer和getElapsedTime。按照函数说明的意思去实现就可以。这里有一个需要考虑的问题,就是void setTimer(TIMEVAL value)中参数value的单位。在源码中多处会用到MS_TO_TIMEVAL(ms)这个宏,这个宏在timerscfg.h中定义为#define MS_TO_TIMEVAL(ms) ((ms) * 1...原创 2019-10-22 22:24:57 · 3143 阅读 · 1 评论 -
3.canfestivel-proceedPDO
设备收到can帧之后就调用解包函数canDispatch,在这个函数里,根据帧ID的不同进行分类处理。void canDispatch(CO_Data* d, Message *m){ UNS16 cob_id = UNS16_LE(m->cob_id); switch(cob_id >> 7) { case SYNC: /* can be a SYNC o...原创 2019-10-20 21:56:10 · 1715 阅读 · 1 评论 -
2.canfestivel-回调函数
当从站收到主站发来的RPDO数据之后,怎么去执行特定的操作呢?只需要编写回调函数并注册到相应的索引对象就可以。索引回调函数的原型在objdictdef.h定义,如下所示typedef UNS32 (*ODCallback_t)(CO_Data* d, const indextable *, UNS8 bSubindex);typedef struct td_subindex{...原创 2019-10-19 22:32:08 · 4033 阅读 · 3 评论 -
1. canfestivel-由对象编辑器生成的对象字典
做了一个IO设备,需要实现CANopen从站,移植的是canfestival。在移植的过程中,CANOpen系列教程对我帮助很大,感谢博主。基于参考以上博客移植好的代码,对源码部分做一些分析。用对象编辑器生成的对象字典,是一对.c/.h的文件。里面把对象字典编辑器里选择的对象和设置的参数都生成好了。自己定义的一些对象,旁边都自动生成了注释,索引和子所引。如下代码所示:UNS8 Write...原创 2019-10-18 19:49:07 · 1569 阅读 · 1 评论