【CANopen】关于STM32中CanFestival的pdo应用

news2024/11/26 5:29:16

系列文章目录


文章目录

  • 系列文章目录
  • 一、发送
    • 1、同步传输
    • 2、异步传输
  • 二、接收


使用STM32F407单片机

pdo属于过程数据用来传输实时数据,即单向传输,无需接收节点回应。

一、发送

分为同步传输和异步传输。

1、同步传输

分为循环传输(周期)和非循环传输(非周期)

  1. 非循环传输

接收到同步报文:
1、如果映射值改变了就发送;
2、如果没有改变就不发送。

把整个pdox对应的映射值给发出去

参数配置:

UNS8 Master_highestSubIndex_obj1800 = 6; /* number of subindex - 1*/
UNS32 Master_obj1800_COB_ID_used_by_PDO = 0x180;	/* 384 */
UNS8 Master_obj1800_Transmission_Type = 0x0;	/* 0设置为非周期传输 */
UNS16 Master_obj1800_Inhibit_Time = 0x0;	/* 0 */
UNS8 Master_obj1800_Compatibility_Entry = 0x0;	/* 0 */
UNS16 Master_obj1800_Event_Timer = 0x0;	/* 0 */
UNS8 Master_obj1800_SYNC_start_value = 0x0;	/* 0 */

在这里插入图片描述
2. 循环传输

/* index 0x1800 :   Transmit PDO 1 Parameter. */
                    UNS8 Msater_highestSubIndex_obj1800 = 6; /* number of subindex - 1*/
                    UNS32 Msater_obj1800_COB_ID_used_by_PDO = 0x180;	/* 384 */
                    UNS8 Msater_obj1800_Transmission_Type = 0x2;	/* 2 接收到两个同步报文发送 */
                    UNS16 Msater_obj1800_Inhibit_Time = 0x0;	/* 0 */
                    UNS8 Msater_obj1800_Compatibility_Entry = 0x0;	/* 0 */
                    UNS16 Msater_obj1800_Event_Timer = 0x0;	/* 0 */
                    UNS8 Msater_obj1800_SYNC_start_value = 0x0;	/* 0 */

Msater_obj1800_Transmission_Type = 1 ~ 253表示接收到1~253个同步报文后发送pdo通信,和映射值变化与否没有关系。

2、异步传输

  1. 内部事件触发

1、定时器触发
Msater_obj1800_Transmission_Type设为0xff,Msater_obj1800_Event_Timer设置定时发送的时间间隔
在这里插入图片描述

2、数据改变

Msater_obj1800_Transmission_Type设为0xff

sendPDOevent(&TestMaster_Data);//循环调用这个函数,如果数据改变则会将数据发出

如果同时有两个TPDO数据改变,调用sendPDOevent只能发出靠前的那个TPDO的数据,连续调用两次会发送先改变的那个,两次调用中间加一点延时既可。

还有一种方法是在DS401这些协议中,暂时还没涉及到。

  1. 远程请求

通过发送与PDO的COB-ID相同的远程帧开触发PDO的发送。

二、接收

接收根据各个RPDO的master_obj1400_COB_ID_used_by_PDO确定,COB-ID确认匹配存入对应的RPDO映射地址中。

  1. 接收到的数据直接读

直接就在映射里面,接收到新数据即覆盖旧数据。

  1. 接收到数据触发回调函数
UNS32 index0x2000_0x01_callback(CO_Data* d, const indextable *table, UNS8 bSubindex)//回调函数
{
	return OD_SUCCESSFUL;//一定要加,不然该PDO对象的下一个参数就无法修改
}

void CAN_INit(void)
{
	RegisterSetODentryCallBack(&CAN_master,0x2000, 1, index0x2000_0x01_callback);//注册回调函数
	//0x2000:映射地址
	//1:子索引
	//index0x2000_0x01_callback:需要注册的回调函数
}

关于注册回调函数中的子索引:
设置为1:即接收的数据存放入子索引1这个位置后触发这个回调函数
也就是可以在接收的任意一个位置注册接收回调函数,想完整接收一帧就放在映射的最后一个索引。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1354659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

看板表格样式,去掉element表格背景

<div class"ml-20"><el-input v-model.trim"queryParams.wipOrderNo" size"small" clearable style"width:150px" placeholder"请输入工单号" /><el-select class"ml-20" v-model"queryParam…

Ubuntu18.04配置静态ip

文章目录 查看网卡名、ip地址、网关切换root用户&#xff0c;进入配置文件配置静态IP 查看网卡名、ip地址、网关 首先查看网卡名、ip地址、网关&#xff0c;找到对应的网卡名并记录其地址 ifconfigroute -n切换root用户&#xff0c;进入配置文件 sudo -icd /etc/netplanvim …

服务器终端快速下载coco数据集

######解压到当前文件夹 sudo apt-get install aria2 aria2c -c <url> #<url>即为官网下载地址# url # download images http://images.cocodataset.org/zips/train2017.zip http://images.cocodataset.org/zips/val2017.zip# download annotations http://i…

CEC2017(Python):蜣螂优化算法DBO求解CEC2017

一、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem definitions and evaluation criteria for the CEC2017 special session and competition on single objective real-parameter numer…

cnPuTTY 0.80.0.1—PuTTY Release 0.80中文版本简单说明~~

2023-12-18 官方发布了PuTTY 0.80本次发布主要是针对Terrapin攻击(CVE-2023-48795)的修改发布。 更多详细的内容请查看PuTTY Change Log。 有关Terrapin攻击可用简单参考&#xff1a;警告&#xff01;&#xff01;&#xff01;Terrapin攻击(CVE-2023-48795)~~~ 为了缓解此漏洞…

学习JavaEE的日子 day08 方法的重载,递归,万年历

day08 1.方法的重载 >理解&#xff1a;方法与方法之间的关系> 条件&#xff1a;> 1.方法必须在同一个类中> 2.方法名必须一致> 3.参数列表的个数或者类型不一致> 4.与返回值无关> 好处&#xff1a;系统会根据具体实参类型自动匹配到对应的方法…

【Bug】Android BottomNavigationView 图标黑色色块问题

最近在研究Android Jetpack组件&#xff0c;在使用Navigation配合底部导航栏时&#xff0c;发现一个奇怪的问题&#xff0c;如下&#xff1a; 说明&#xff1a;图标来源于Iconfont开源图标库 我的第三个图标变成了一个黑色色块&#xff0c;这个问题前两天我遇见过&#xff0c…

Java 跨平台实现

Java 跨平台实现 1. Java虚拟机&#xff08;JVM&#xff09;2. 中间代码&#xff08;字节码&#xff09;3. Write Once, Run Anywhere (WORA)4. Java 标准库5. 安全性与隔离6. Java Community Process (JCP) Java 的跨平台性主要是通过以下几个关键机制来实现的&#xff1a; 1…

安克创新与火山引擎数智平台开展合作:数据分析降门槛 数据协同破边界

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 近日&#xff0c;消费电子品牌安克创新与火山引擎数智平台&#xff08;VeDI&#xff09;达成合作&#xff0c;双方将聚焦安克创新大数据平台的海量数据分析场景&…

听GPT 讲Rust源代码--compiler(4)

File: rust/compiler/rustc_codegen_gcc/src/back/mod.rs rust/compiler/rustc_codegen_gcc/src/back/mod.rs 文件是 Rust 编译器的源代码中的一个模块&#xff0c;主要负责与 GCC&#xff08;GNU 编译器集合&#xff09;相关的后端代码生成。 在 Rust 编译器的架构中&#xff…

Laya游戏开发中AI寻路解决方案

1.AI自动寻路&#xff1a; 机器人代码重构&#xff0c;按照目标点去执行逻辑&#xff0c;提前几帧判断直线&#xff0c;非直线的情况下&#xff0c;预设转弯角度&#xff0c;角度判断到达直线后开始执行到目标点的逻辑 2.U3D布点寻路 3.NevMesh.Js寻路插件 NevMesh.Js你可以在L…

顶顶通呼叫中心中间件通过队列外呼拨打另一个sip并且放音(mod_cti基于FreeSWITCH)

介绍 顶顶通呼叫中心中间件通过队列外呼拨打另一个sip并且放音 一、添加acl 打开ccadmin->点击配置文件->点击acl.conf->在</list>后面添加一条图中的信息->muqi是我自己设置的名字你们可以修改为自己需要的名字->添加好了点击提交XML->在运维调试点…

【数据仓库与联机分析处理】数据仓库

目录 一、数据仓库的概念 二、数据仓库与操作性数据库的区别 三、发展前期 四、数据仓库的系统结构 五、建模划分 六、主要案例 一、数据仓库的概念 目前很难给数据仓库&#xff08;Data Warehouse&#xff09;一个严格的定义&#xff0c;不准确地说&#xff0c;数据仓库…

C# A* 算法 和 Dijkstra 算法 结合使用

前一篇&#xff1a;路径搜索算法 A* 算法 和 Dijkstra 算法-CSDN博客文章浏览阅读330次&#xff0c;点赞9次&#xff0c;收藏5次。Dijkstra算法使用优先队列来管理待处理的节点&#xff0c;通过不断选择最短距离的节点进行扩展&#xff0c;更新相邻节点的距离值。Dijkstra算法使…

一分钟带你了解支持向量机(SVM)

支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种用于分类问题的监督算法。主要用于二分类和多分类问题。其基本思想是找到一个超平面&#xff0c;能够将不同类别的样本点尽可能地分开&#xff0c;并使得离超平面最近的样本点尽可能远离超平面&…

基于Vue的宿舍管理系统

基于Vue的宿舍管理系统资源-CSDN文库 基于 Koa 以及 VueJS 的宿舍管理系统。 新增功能&#xff1a; 【楼层管理】添加『入住人员信息』模块&#xff0c;显示入住学生、性别、院系、专业的人数&#xff0c;可用饼图表示【用户信息】学生用户添加性别、院系、专业字段【楼层管理…

大洋钻探系列之五“地球号”钻探船

​ “地球号”&#xff08;Chikyu&#xff09;是日本船舶科学技术中心为实施“21世纪海洋钻探规划” 而订造的一艘隔水管型深海钻探船&#xff0c; 主要用于对深海海底地质结构的勘探&#xff0c; 由三井造船工程公司所属的玉野船厂建造&#xff0c; 于2002年1月下水。该船在玉…

ant design pro 5 企业级后台前端框架自定义根路径设置,解决public文件夹下资源在打包部署后出现找不到的问题

关于ant design pro v5的开箱使用方法见&#xff1a;开箱即用的企业级数据和业务管理中后台前端框架Ant Design Pro 5的开箱使用和偏好配置-CSDN博客 在开发过程中为了方便我们可能会将部分静态资源如logo等放入public文件夹&#xff0c;但在设置站点根路径后&#xff0c;publi…

物联网开发点对点通信模式NFC和蓝牙如何无缝结合

随着物联网开发和智能手机的普及&#xff0c;NFC 技术作为一种新兴的技术正在被越来越多新款手机所采用。该技术的发展使得将 RFID 功能集成到手机的设想成为了可能。当前作为传统近距离通信的蓝牙技术也在不断地发展&#xff0c;传输速率跟过去相比也有大幅度的提高&#xff0…

python爬虫实现获取招聘信息

使用的python版本&#xff1a; 3.12.1 selenium版本&#xff1a;4.8.0 urllib版本&#xff1a;1.26.18 from selenium import webdriver from selenium.webdriver import ActionChains import timeimport re import xlwt import urllib.parsedef get_html(url):chrome_drive…