一路向北lm 发表于 2020-8-30 17:12

Canfestival 源码的获取

从canfestival官网下载https://canfestival.org/index.html.en

一路向北lm 发表于 2020-8-30 17:13

解压文件,可看到src文件夹下的源码和examples文件下不同平台实例工程。

一路向北lm 发表于 2020-8-30 17:13

简单看一下src源码路径下都有些啥文件哈,暂且记两个,比如SDO、PDO。

一路向北lm 发表于 2020-8-30 17:14

再来看一下example实例工程都支持哪些平台哈,给了AT91、AVR单片机的实例工程,此外也在win32和Linux平台上都给了测试工程,并且还给了主从机和主从机LSS的测试程序。

一路向北lm 发表于 2020-8-30 17:14

既然给了这么多测试工程,不妨一试,先拿win32平台来开刀。(需要安装一个VS哦!),打开工程后,主要是main.c和win32test.c两个文件,先简单看一下main.c文件的main函数吧,简单了解下,不要一口吃一个胖子,那也吃不消!

一路向北lm 发表于 2020-8-30 17:14

main.c中的main函数伪代码大致如下,首先需要初始哈CAN的硬件驱动,同时需要提供一个定时器,然后初始化CANopen,并为其分配节点ID和波特率,暂且为其设置为初始化状态。在运行CANopen之前需要将主节点切换为操作态,然后将总线上的从节点设置为操作态,这样就可以通过总线进行通讯啦!关于具体的操作,后面我们再细细品!

一路向北lm 发表于 2020-8-30 17:15

//初始化CAN底层驱动
LoadCanDriver(dll_file_name);
   //初始化定时器
        TimerInit();
   //初始化CANopen
   //1.设置节点ID
   setNodeId(&win32test_Data, 0x01);
   //2.设置节点状态
   setState(&win32test_Data, Initialisation);
//开始运行CANopen
//1.将主节点状态切换为操作态
   setState(&win32test_Data, Operational);
   //2.将从节点设置为操作态
   masterSendNMTstateChange (&win32test_Data, 0, NMT_Start_Node);      
   //3. 等待从节点切换完毕
   if (GetChangeStateResults(node_id, Operational, 3000) != 0xFF)
   //4. 关于主节点对丛节点的配置操作
…………………………………………………..
//开启Canopen的正常运行


页: [1]
查看完整版本: Canfestival 源码的获取