S32G274A spi发送数组值不变问题

news2024/11/15 8:47:40

官方例程的spi问题

spi发送函数

  1. 下面是S32G两个spi从机发送函数
/**
* @brief SPI/DSPI异步传输。
* 这个函数使用提供的总线参数初始化异步传输
, 通过外部设备。
* @param[in] ExternalDevice -指向传输数据的外部设备的指针
* @param[in] TxBuffer -发送缓冲区的指针。
* @param[in-out] RxBuffer接收缓冲区的指针
* @param[in] Length -发送的字节数。
* @param EndCallback -在传输结束时调用回调函数。
* @return SPI_IP_STATUS_SUCCESS:传输命令已被接受。
* SPI_IP_STATUS_FAIL:传输命令没有被接受。
* @实现Spi_Ip_AsyncTransmit_Activity
*/
Spi_Ip_StatusType Spi_Ip_AsyncTransmit(
                                       const Spi_Ip_ExternalDeviceType *ExternalDevice,
                                       uint8 *TxBuffer,
                                       uint8 *RxBuffer,
                                       uint16 Length,
                                       Spi_Ip_CallbackType EndCallback
                                      );**
* @brief SPI/DSPI同步传输。
* 这个函数使用提供的总线参数初始化同步传输
, 通过外部设备。
* @param[in] ExternalDevice -指向传输数据的外部设备的指针。
* @param[in] TxBuffer -发送缓冲区的指针。
* @param[in-out] RxBuffer接收缓冲区的指针
* @param[in] Length -发送的字节数。
* @param[in] TimeOut -发送一个帧的持续时间。
* @return SPI_IP_STATUS_SUCCESS:传输命令已被接受。
* SPI_IP_FIFO_ERROR:溢出或下溢错误发生。
* SPI_IP_STATUS_FAIL:传输命令没有被接受。
* SPI_IP_TIMEOUT:超时错误。
* @实现Spi_Ip_SyncTransmit_Activity
* /
Spi_Ip_StatusType Spi_Ip_SyncTransmit(
                                      const Spi_Ip_ExternalDeviceType *ExternalDevice,
                                      uint8 *TxBuffer,
                                      uint8 *RxBuffer,
                                      uint16 Length,
                                      uint32 TimeOut
                                     );

问题描述

  1. 如果在发送之前或者任意一个地方改变TxBuffer的值, Spi_Ip_AsyncTransmit发出来的还是数组最开始定义时的值

在这里插入图片描述
1. 改初始化的值再重新编译,能发出改过后的值

1. 加了个循环自增,打印看数组有改的,断点暂停看地址也没错,然后继续跑发的第一个是正常改变后的数组,但是继续跑之后发的又不变化了

1. 昨天在nxp论坛问过,他们建议补充文件(SPI_Memmap.h, 在自己工程里发现找不到这个所以暂时注释了,也能跑)和关闭优化,但试了还是一样,并且关优化后片选脚输出没了,目测数据还是没改

在这里插入图片描述
1. 只能发全局数组初始化的值,局部数组怎么改都发0

1. 调用状态查看函数,显示每次都成功

1. 如果改变发送的数组,发一个A数组发一个B数组,确实能发对
  1. 如果换成Spi_Ip_SyncTransmit函数, 改变数组的值是可以成功发出改变值来的, 但这个函数是阻塞式发送, 因为我要配成从机,调用时候好像要等主机,没法再执行其他东西,任务没执行了

  2. 如果用另一个库,SPI_Transfer那个例程,主机模式下异步发送函数能发对,底层也是调用Spi_Ip_AsyncTransmit,不过前面还有比较多操作,还得研究一下

    1. 这个库改成从机模式,改了引脚方向,不发东西了,断点看有跑到执行的地方,状态显示busy

官方回复: 例程有误, 需要改宏定义和文件

  • 数组没有被正确地定义在非缓存区域

Re: How to change varaibles in array when sending message in spi master/slave mode | S32G274A

#define MCL_START_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE
#include "Mcl_MemMap.h"

uint8 RxBuffer[NUMBER_OF_BYTES];
uint8 TxBuffer[NUMBER_OF_BYTES] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09};

#define MCL_STOP_SEC_VAR_INIT_UNSPECIFIED_NO_CACHEABLE
#include "Mcl_MemMap.h"

在这里插入图片描述

  • 部分解释, 但现象和宏定义的功能好像还有点出入, 可研究下非缓存区域

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

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

相关文章

3.1动态规划--矩阵连乘问题

写在前面:矩阵连乘的要点 1、最优解数组的含义--A[1:n]的最少数乘次数 2、数组的填写方向--斜着填 3、递推方程含义 今天开始动态规划的学习,动态规划与分治法类似,基本思想就是将待求解的问题分成若干子问题,先求解子问题&am…

Java 23种设计模式(2.创建者模式-工厂设计模式)

代码分析 通过代码的不同实现方式,了解工厂模式 代码分析之后有具体的讲解 1.业务和逻辑分开实现 public class Operation {public static double GetResult(double numberA,double numberB,String operate){double result 0;switch (operate){case "":r…

SpringBoot+Vue项目月度员工绩效考核管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

Kubernetes:通过 kubectl 插件 kubectl-tree 查看API对象层级关系

写在前面 分享一个小工具 kubectl-tree,用于查看 k8s API 对象层级关系比如对于有状态应用来讲,可以看到Deployment --> ReplicaSet --> Pod 的构成关系博文内容涉及:tree 插件的安装以及使用。理解不足小伙伴帮忙指正 岂其食鱼&#x…

Java---微服务---Nacos安装

Nacos安装1.Windows安装1.1.下载安装包1.2.解压1.3.端口配置1.4.启动1.5.访问2.Linux安装2.1.安装JDK2.2.上传Nacos安装包2.3.解压2.4.端口配置2.5.启动2.6.访问3.Nacos的依赖1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面,提供…

Java/JavaScript有哪些图形图像处理的框架?

文章目录一个小问题引发的学习热潮其它几个图形库Eclipse GEF框架Java图像库JS 的图形框架图形处理库图像编辑物理引擎流程图/组织图/图编辑等全景图/AR/VR3D库Javascript游戏编程库尾声一个小问题引发的学习热潮 一直对Java图形图像编程念兹在兹,书架上有几本相关…

2、IDEA的卸载与安装

文章目录2、IDEA的卸载与安装2.1 卸载过程2.2 安装前的准备2.3 安装过程2.4注册过程方式一:免费试用30天方式二:官网购买方式三:教育使用2.5 闪退问题【尚硅谷】idea实战教程-讲师:宋红康 生活是属于每个人自己的感受,…

3.1 卷积神经网络的应用领域|卷积的作用|卷积特征值的计算方法|得到特征图表示|步长与卷积核大小对结果的影响|边缘填充方法

文章目录卷积神经网络的应用领域卷积的作用卷积特征值的计算方法得到特征图表示步长与卷积核大小对结果的影响边缘填充方法卷积神经网络的应用领域 检测任务分类与检索超分辨率重构医学任务无人驾驶NVIDIA Tegra X1(显卡 GPU) 卷积的作用 卷积神经网络…

产品设计-基础控件-信息输出控件

产品设计-基础控件-信息输出控件1.1 走马灯1.1.1 图片轮播样式1.1.2 文字轮播样式1.2 折叠面板1.3 时间轴与步骤条1.3.1 时间轴1.3.2 步骤条1.4标签和徽标1.4.1 标签和徽标1.4.2 徽标1.5 面包屑与查询器1.5.1 面包屑1.5.2 查询器1.6 列表页与详情页1.6.1 列表页1.6.2 详情页1.7…

【实操案例十】函数操作 实例代码及运行效果图!

任务一:Mini计算器 # 任务一:Mini计算器 def calc(a, b, op):if op :return add(a, b)elif op -:return sub(a, b)elif op *:return mul(a, b)elif op /:if b ! 0:return div(a, b)else:return 0不能为除数!def add(a, b):return a bde…

这种银行病毒是2022年12月的头号恶意软件

到 2022 年,全球网络攻击同比增长 38%,并且是由更小、更灵活的黑客和勒索软件团伙驱动的。 根据一份报告,全球网络攻击数量在第四季度达到历史新高,平均每个组织每周发生 1,168 次攻击。 现在,一份新报告列出了上个月…

【iMessage苹果推】iOS 当地推送(Local Push) 安装OS CSR文件尽可能多地使每个证书区分开

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

长短期记忆(LSTM)详解

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 ✨完整代码在我的github上,有需要的朋友可以康康✨ ​​​​​​https://github.com/tt-s-t/Deep-Learning.git 目录 一…

【C语言进阶】指针进阶(干货)

目录 一、字符指针 二、指针数组 三、数组指针 1、数组指针的定义 2、&数组名和数组名的区别 3、数组指针的使用 四、数组传参和指针传参 1、一维数组传参 2、一级指针传参 3、二维数组传参 4、二级指针传参 五、函数指针 1、函数指针的定义 2、函数指针的使用 六、…

论文阅读:《Collision Avoidance Testing of the Waymo Automated Driving System》

文章目录1 背景2 方法2.1 Overview2.2 安全测试目标2.2.1 测试目标设定方法(Method to Set the Test Objective)2.2.2 测试目标度量方法(Metrics to Measure the Test Objectives)2.3 基于潜在危机情况的测试场景(Test…

17种编程语言实现排序算法-希尔排序

开源地址 https://gitee.com/lblbc/simple-works/tree/master/sort/ 覆盖语言:C、C、C#、Java、Kotlin、Dart、Go、JavaScript(JS)、TypeScript(TS)、ArkTS、swift、PHP。 覆盖平台:安卓(Java、Kotlin)、iOS(SwiftUI)、Flutter(Dart)、Window桌面(C#)、…

Unity HurricaneVR 插件中的 VRIK 设置

IK(反向动力学)有利于提升 VR 应用中的沉浸感,比如我们可以通过对手部的追踪,再结合 IK,来模拟 VR 中人物的手臂和手肘的姿态。 Final IK 是 Unity 一款功能强大的 IK 插件,其中拥有适用于 VR 的 IK 功能&…

基于微信小程序的自驾游拼团小程序

文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…

逻辑陷阱型蜜罐合约

蜜罐是传统安全领域中的一个概念,通常指安全人员设置一些陷阱(比较明显的漏洞),让攻击者自己掉入我们设置好的陷阱中,以便安全人员分析攻击者的作恶手法。蜜罐合约(HoneyPots Contract)也是类似…

pandarallel 是一个简单而有效的工具,可以在所有可用的 CPUs 上并行执行 pandas 操作

文章目录 一、简介二、特点三、用户指南CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、简介 官方文档地址:https://nalepae.github.io/pandarallel/ Github 链接:https://github.com/nalepae/pandarallel pandarallel 是一个简单而有效的工具,可以在所有可用的 CPU…