概述
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源码学习笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复