我是靠谱客的博主 跳跃草丛,最近开发中收集的这篇文章主要介绍CanFestival源码学习笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

CANOpen从机
setNodeId(&TestSlave_Data,nodeID);
setState(&TestSlave_Data,Initialisation);
setState(&TestSlave_Data,Operational);

这三句话非常重要,是Canopen协议栈的入口。
nodeID是从机地址,取值范围可以是0x01至0x7F。
协议栈初始化时,状态会按照Initialisation->Pre_operational->Operational的顺序变化。

主要的函数调用关系如下:
setState->switchCommunicationState->StateOrStop。
在StateOrStop函数中对各个服务进行初始化,包括BootUp、SDO、Emergency、SYNC、LifeGuard、PDO和LSS。初始化过程中分别调用对应的Start或Stop函数。调用顺序是:startSYNC、lifeGuardInit、emergencyInit、slaveSendBootup,最后是PDOInit。
在lifeGuardInit方法中,会对心跳报文的发送函数(ProducerHeartbeatAlarm)进行初始化。在slaveSendBootup方法中,会发送上线报文,数据内容是0x00。

最后

以上就是跳跃草丛为你收集整理的CanFestival源码学习笔记的全部内容,希望文章能够帮你解决CanFestival源码学习笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部