参考资源
CANopen协议栈源码:
https://github.com/CANopenNode/CANopenNode
CANopen协议栈基于STM32平台开发的demo,不过这里是基于STM32CUBEIDE开发的:
https://github.com/CANopenNode/CanOpenSTM32
协议栈的配置工具:
https://github.com/CANopenNode/CANopenEditor
程序源码在这里
CUBEMX配置
正点原子的开发板引出的是CAN1接口

CAN1接口的波特率125k:

定时器timer14的配置:

配置好之后进行采用keil IDE进行代码生成即可,还需要进行CANopenNode的代码集成,并参照demo进行代码移植。
集成的代码主要包括CANopenNode和CANopenNode_stm32两个文件夹内:


相关代码的移植主要是main函数:
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
/* USER CODE BEGIN 1 */

本文介绍了CANopen协议栈在STM32平台上的使用,包括基于CUBEMX的配置、定时器设置、CANopenNode的集成以及简单通信测试,如心跳包发送和接收。还详细解释了CANID映射和协议内容解析示例。
最低0.47元/天 解锁文章





