[程序源码]

Canfestival 源码的获取

[复制链接]
1980|6
手机看帖
扫描二维码
随时随地手机跟帖
一路向北lm|  楼主 | 2020-8-30 17:13 | 显示全部楼层
解压文件,可看到src文件夹下的源码和examples文件下不同平台实例工程。
505035f4b6da06f151.png

使用特权

评论回复
一路向北lm|  楼主 | 2020-8-30 17:13 | 显示全部楼层
简单看一下src源码路径下都有些啥文件哈,暂且记两个,比如SDO、PDO。
997685f4b6dbfe76e8.png

使用特权

评论回复
一路向北lm|  楼主 | 2020-8-30 17:14 | 显示全部楼层
再来看一下example实例工程都支持哪些平台哈,给了AT91、AVR单片机的实例工程,此外也在win32和Linux平台上都给了测试工程,并且还给了主从机和主从机LSS的测试程序。
6135f4b6de141b27.png

使用特权

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

使用特权

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


使用特权

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

本版积分规则

256

主题

3639

帖子

73

粉丝