canopen4.0-canfestiva移植以及同步帧发送

canopen4.0-canfestiva移植以及同步帧发送1 canfestival 移植入 工程包 一 canfestival 系列教程之程序移植 1 1 首先准备一个 hal 工程 cubmx RCC 配置 SYS 配置 时钟配置 canopen 定时器配置 开启中断 can 配置波特率 接收中断

大家好,我是讯享网,很高兴认识大家。

1.canfestival移植入

工程包:

一、canfestival系列教程之程序移植

1.1、首先准备一个hal工程 ,cubmx

--------------RCC配置
在这里插入图片描述
讯享网
-----------SYS配置
在这里插入图片描述
----------时钟配置
在这里插入图片描述
-----canopen定时器配置(开启中断)
在这里插入图片描述
在这里插入图片描述

--------------can配置波特率,接收中断
在这里插入图片描述
在这里插入图片描述
------RTOS配置
在这里插入图片描述

1.2、库包数据移植,canfestival文件夹中复制源码库的src和include文件夹.

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.3、添加c文件

在这里插入图片描述

1.4、修改文件

在这里插入图片描述
在这里插入图片描述

1.5、start_and_seek_node() 和 start_node()

在这里插入图片描述
在这里插入图片描述

1.5、还需要canSend(), getElapsedTime(), setTimer()三个函数需要编写.

上面讲到还需要canSend(), getElapsedTime(), setTimer()三个函数需要编写.

这里不能单单编写这三个函数.

需要配置stm32的can接口,也就是对can进行参数配置,初始化,使能.然后再调用canSend()才会有作用.

getElapsedTime(), setTimer()要想起到作用,需要配置stm32的定时器.然后timer定时器才可以提供canfestival库一个时钟基准

------------canSend():

/ * 函数功能: CAN发送函数 * 输入参数: notused:结构体 m:数据 * 返 回 值: 无 * 说 明: 无 */ unsigned char canSend(CAN_PORT notused, Message *m) { 
    uint8_t txbuf[8]; uint32_t i; printf("m->cob_id=%x\r\n",m->cob_id); TxHeader.StdId=m

讯享网
小讯
上一篇 2025-03-10 14:40
下一篇 2025-02-17 14:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/59428.html