CANopen源码简单讲二

上次讲到CAN口的初始化 , 这次先讲CAN发送程序和中断接收程序 。
CANopen源码简单讲二文章插图
can接受中断回调函数
这个回调函数里的canDispatch(&ObjDict_Data, &Rx_Message)是重要的解包程序 , 接收到的信息都会在这个函数里解码 。
CANopen源码简单讲二文章插图
can发送函数
在CAN发送函数中 , 会把信息组合成符合CANopen协议的信息帧 。
接下来讲调度器所需要的时间函数 。 随便选择一个定时器 , 我这边选择的是定时器3 , 初始化状态为:timer3_init(65536-1, 72-1) 。
CANopen源码简单讲二文章插图
定时器初始化函数
然后在中断回调函数里放入TimeDispatch()时间调度函数 。
CANopen源码简单讲二文章插图
定时器的中断回调函数
其中还需要两个函数用来计算时间帧 , 这两个函数一定要放入 , 可以不按我的方式来写 , CANopen源码并没有要求怎么写这两个函数 。
CANopen源码简单讲二文章插图
【CANopen源码简单讲二】时间帧计算函数
至此 , CANopen底层的代码就准备完善了 , 接下来就是配置对象字典了 。 下次我们将如何配置对象字典 。