打印
[程序源码]

Canfestival 源码的获取

[复制链接]
2136|6
手机看帖
扫描二维码
随时随地手机跟帖
沙发
一路向北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的测试程序。

使用特权

评论回复
5
一路向北lm|  楼主 | 2020-8-30 17:14 | 只看该作者
既然给了这么多测试工程,不妨一试,先拿win32平台来开刀。(需要安装一个VS哦!),打开工程后,主要是main.c和win32test.c两个文件,先简单看一下main.c文件的main函数吧,简单了解下,不要一口吃一个胖子,那也吃不消!

使用特权

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

使用特权

评论回复
7
一路向北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的正常运行


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

275

主题

3784

帖子

76

粉丝