# DeviceNet4STM32 **Repository Path**: coolwindgps/devicenet-4stm32 ## Basic Information - **Project Name**: DeviceNet4STM32 - **Description**: 适用于stm32的devicenet库。 支持IO和显式报文。 由PIC的开源代码移植。 - **Primary Language**: C - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 7 - **Created**: 2025-03-06 - **Last Updated**: 2025-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeviceNet4STM32 #### 介绍 适用于stm32的devicenet从站库。 支持组2预定义设备,支持IO和显式报文。 由PIC的开源代码移植。 #### 软件架构 由C编写。 在stm32cubeIDE环境下测试,由GCC编译。 需要CMSIS驱动库和HAL驱动库。 原来的代码是为PIC18FXX8单片机设计的,我将它移植为适用于STM32单片机。 主要移植工作:重写了硬件CAN接口代码,扩展了用户接口(主要是为了方便使用显示报文),修改了几处关键性的bug。 使用SST的DN4主站卡进行测试,测试显示性能良好,功能比较完备。 #### 安装教程 将devicenet目录及其包含文件复制到项目下即可。 #### 使用说明 1. 包含以下头文件:"devicenet/GoDNet.h" "devicenet/app.h" "devicenet/dnet_userIF.h" 2. 根据单片机型号,修改CAN.c,将#include 改成 #include 之类 3. 修改dnet_userIF.h ,主要是设备名称、版本、序列号的定义,pollIO缓冲区的大小、pollIO的收发字节数等 4. 从拨码开关或软件设置获取macid和btr 5. 系统初始化时,依次调用MX_CAN_Init(); dndata_init(macid,btr); GoDNetInitializeAll(); 6. 循环调用 GoDNetProcessAllMsgEvents(); 和 AppClass1Process(); 7. 每隔8ms调用 GoDNetProcessAllTickEvents(); 8. 从pollinbuf获取主站下发IO数据 9. 将数据写入pollotbuf以实现IO数据上传 10. 根据flag_msled和flag_nsled的值设置LED指示 11. 若要使用显示报文,则填充完善dnet_userIF.c中的三个函数:getEXattr1 getEXattrSLEN1 setEXattr1 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)