参考资源
CANopen协议栈源码:
https://github.com/CANopenNode/CANopenNode
CANopen协议栈基于STM32平台开发的demo,不过这里是基于STM32CUBEIDE开发的:
https://github.com/CANopenNode/CanOpenSTM32
协议栈的配置工具:
https://github.com/CANopenNode/CANopenEditor
00_NMT网络管理的模块控制
https://blog.csdn.net/zaichen321/article/details/128841446
安富莱电子开发板视频教程
https://www.armbbs.cn/forum.php?mod=viewthread&tid=121619&extra=page%3D1
周立功《CANopen轻松入门》
程序的准备
使用CANopenEditor打开之间的配置工程,主要修改0X1400的配置参数,将Transmit type的类型配置为254,即用户自定义的发送类型。
点击图示位置的index和加入自定义的数据类型(在该区域点击右键是没有用的,一定要点在index上才可以。。。。。)
注意这里PDO的tr选项要选中,否则在RX PDO mapping中看不到这个变量
配置完成后可以切换到RX PDO mapping页面,将CAN ID和变量进行关联:
这里是采用200+$NODEID与变量进行关联,并导出配置的文件。
RPDO测试
运行开发板程序,将OD_RAM的变量加入到watch窗口:
发送模拟主机发送TPDO报文如下图:
可以看到收到报文后变量的值已经被修改: