《零》canfestival系列教程之说明(移植前准备)
canfestival是一个通信库.
它的作用是掌握通信.并把通信功能全部包揽过来.
我们移植它之后,通信部分就由它全权负责.它负责把数据搬运到can上,发送报文.
我们只需要写代码,改变要发送的数据值就行.
它会按照字典的配置,自动进行数据的定时搬运...(或者字典配置的其他方式搬运)
所以配置好它,之后,只需要把它切换到操作状态,让它工作即可.
不需要我们亲自调用发送接口去发送数据!!!

canfestival是一个开源的库
移植一些开源库时需要注意一下几点:
1,要找到最外层的函数.
库函数通常是一层包着一层,
但是对于我们,最有价值的往往是最外层的函数.
只需要知道最外层函数如何传参,如何使用. 先把它用起来.
就比如stm32的库函数一样,一般不会去动底层的函数.
2,找到config文件
一些开源库都是有config.h文件的(或者其他名字...).
大多情况下不需要修改源码,只需要配置文件的参数即可实现大部分功能.
2,注意数据流
canfestival是传输协议,所以需要弄清楚如何发送数据.
3,程序结构
canfestival,类似前后台系统.
前后台系统,由主循环和中断构成.
canfestival主循环中可以进行状态的切换.在不同状态下实现不同功能.
通常在进入"操作状态"进行数据的发送.
中断是有软件定时器产生的,canfestival中,大部分事件都是在中断中完成的.
每个事件配有一个对应的软件定时器.
pdo有它对应的定时器,定时器溢出,会发送pdo.
sdo有它对应的超时定时器,定时器溢出,表示sdo超时,也会执行相应函数.
除此之外还有很多定时器,驱动其他事件的发生.
......
canfestival中需要配置的三个地方:
1,字典
字典包含了canfestival的几乎所有功能参数.
字典中规定了pdo的发送方式和发送内容.
canfestival执行的时候就是按照字典进行发送和接收的.
2,硬件定时器,
硬件定时器是软件定时器的基础.
只有配置硬件定时器后,各个软件定时器才能正常工作.
然后,才能产生不同的中断.在中断中才能发送pdo,发送sdo...
3,配置文件
config.h ,它里面规定了一些sdo超时时长,pdo个数,定时器个数等等.
一些简单的通信,不需要修改,用默认的即可.
canfestival执行顺序:
1,主函数中进行状态的切换.
2,进入到"操作状态".
3,等待软件定时器发生溢出.
4,在软件定时器中完成各项功能.