ch552g中使用SPI进行主从机通信时发现的问题

参考

基本硬件准备

两块独立的ch552g的板子,开始连接时数据传输出现数据错误,本来猜想是通信线连接问题,后来用了较短的连接线依然没有改善。

SPI通信的认知

SPI一般都是全双工实时通信,所以在发送数据时一般有短暂的停留使得数据稳定读取
在这里插入图片描述

前期出现问题

1,一直触发中断

在打印结果中发现,多次触发中断,得出的结论;在中断中添加对中断标志位置位后解决问题

2,为了使得现象明显,通过LED显;但亮度不稳定

猜测:由于使用串口助手检测输出结果,LED引脚和和UART通信的引脚公用了。但是UART发送信号的电压变化相当于一个不规则的PWM导致亮度时刻变化

3,数据出现乱码情况,且每次同样的运行出的输出结果不同

这是主要困扰的问题,发现每次的数据居然不是预期的,而且同样的程序,再次运行时发现结果居然不同。最终意外想起,在SPI引脚和触摸检测的引脚在一个引脚,硬件设计时,多加了电容,在实际使用时忘记拆掉。后来拆掉发现数据输出稳定。
在这里插入图片描述
在这里插入图片描述

4,接收数据和发送数据不一致

主要控制的配置,下面的不同情况配置就是通过改变下面的几个控制参数
在这里插入图片描述

在这里插入图片描述

主机发送数据时无延时

for(COUNT=0;COUNT<10;COUNT++){master_cs = 0 ; //低电平片选有效REM_FIR = 48+COUNT;mDelaymS(1000); SPI_WriteByte(REM_FIR); //ASCII码的0字符对应的就是48mDelaymS(5);  //这个不能省,否则接收会一直读取数据//master_cs = 1 ;  //取消片选//mDelayuS(1);  //这个不能省,否则接收会一直读取数据LED = 1; //主机显示LED1 = !LED1;master_cs = 1 ;  //取消片选REM_FIR=1;}

在这里插入图片描述
在这里插入图片描述

主机发送有延迟

都能完成正确发送和接收,下面对应的条件和前面(除了主机发送延时)其他都一样,数据传送没问题

在这里插入图片描述

分析上面出现的问题

虽然SPI是实时通信,但从数据写入寄存器然后发送到从机的寄存器,再从从机寄存器读取出来。主机发送到寄存器一个字节最好不要紧接着发送下一个字节,因为上个字节如果没读取走,那么发送的数据可能被覆盖。
在这里插入图片描述

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

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

相关文章

到底哪款护眼大路灯好?五款适合学生用的护眼落地灯分享

到底哪款护眼大路灯好&#xff1f;影响青少年近视的最大“杀手”竟是学习环境光的影响。而对于这种情形&#xff0c;尤其是对于需要长时间用眼的学生群体和伏案工作者来说&#xff0c;护眼大路灯简直就是必备神器&#xff0c;但有人会问&#xff0c;我手机打开一搜就出现了那么…

防火墙综合实验一

目录 实验要求 防火墙准备 IP地址分配 需求一 需求二 需求三 需求四 需求五 需求六 实验要求 1、DMZ区内的服务器&#xff0c;办公区仅能在办公时间内(9:00-18:00)可以访问&#xff0c;生产区的设备全天可以访问。 2、生产区不允许访问互联网&#xff0c;办公区和游客…

qq动态删了怎么恢复?五分钟找回您的QQ动态

在使用QQ空间时&#xff0c;我们经常会发现自己误删了一些重要的动态。这可能是由于手指滑动不慎或者误操作引起的。无论是珍贵的回忆还是重要的信息&#xff0c;一旦被删除&#xff0c;我们都希望能够找回来。那么&#xff0c;qq动态删了怎么恢复&#xff1f; 在本文中&#…

vue2/3代码格式化问题,看着太难受了

1.原本的代码&#xff1a; 格式化后的代码&#xff1a; 太难受了&#xff01; 2.原本的代码 格式化后的代码 格式化跟有病似的&#xff0c;看着非常难受&#xff01; 有没有什么插件解决&#xff01;&#xff1f;

你知道的和你不知道的DOM操作技巧

你知道的和你不知道的DOM操作技巧 亲爱的前端小伙伴们&#xff0c;今天我们来聊聊那些你可能知道或者不知道的DOM操作技巧。作为一名前端开发者&#xff0c;如果你还在为DOM操作头疼&#xff0c;那么这篇文章绝对能让你茅塞顿开。让我们一起来探索一下DOM的奥秘吧&#xff01;…

2024春秋杯网络安全联赛夏季赛-PWN

文章目录 stdout测试setvbuf(stdout, 0LL, 2, 0LL)绕过或者输出直到缓冲区满使用system("/bin/sh")或者onegadget即使setvbuf(stdout, 0LL, 0, 0LL);也能立即有回显参考[https://starrysky1004.github.io/2024/07/05/2024-shu-qi-xue-xi-ji-lu/#toc-heading-4](https…

搜维尔科技:【研究】Scalefit是一款可在工作场所自动处理3D姿势分析结果的软件

Scalefit是一款可在工作场所自动处理 3D 姿势分析结果的软件。这甚至可以在衡量员工的同时发生。然后&#xff0c;Scalefit 根据国际标准对姿势、压缩力和关节力矩进行分析和可视化。 3D姿势分析 如今&#xff0c;Xsens 技术可让您快速测量工作场所员工的态度。一套带有 17 个…

开源无人机从入门到炸机,共需要几步?

阿木实验室2024年的重磅新品 Prometheus 仿真笔记本已经上架有一段时间了&#xff0c;近日&#xff0c;该产品的研发负责人廖工受邀到直播间与开发者们深度解读了Prometheus仿真笔记本的设计理念。直播过程中&#xff0c;廖工不仅展示了该产品的功能demo&#xff0c;解答技术开…

Postman API性能测试:解锁高级技巧的宝库

&#x1f680; Postman API性能测试&#xff1a;解锁高级技巧的宝库 在API开发和测试过程中&#xff0c;性能测试是确保API稳定性和可靠性的关键环节。Postman作为API测试的强大工具&#xff0c;提供了多种性能测试功能和高级技巧&#xff0c;帮助开发者深入分析API的性能表现…

掌握Conda配置术:conda config命令的深度指南

掌握Conda配置术&#xff1a;conda config命令的深度指南 引言 Conda是一个功能强大的包管理器和环境管理器&#xff0c;广泛用于Python和其他科学计算语言的依赖管理。conda config命令是Conda套件中用于配置和自定义Conda行为的关键工具。通过这个命令&#xff0c;用户可以…

leetcode:1332. 删除回文子序列(python3解法)

难度&#xff1a;简单 给你一个字符串 s&#xff0c;它仅由字母 a 和 b 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符&#xff08;字符串为空&#xff09;的最小删除次数。 「子序列」定义&#xff1a;如果一个字符串可以通过删除原字…

less和sass有啥区别哪个更加好

Less 和 Sass&#xff08;特别是其最流行的变体 SCSS&#xff09;都是 CSS 预处理器&#xff0c;它们扩展了 CSS 的功能&#xff0c;如变量、嵌套规则、混合&#xff08;Mixins&#xff09;、函数等&#xff0c;以编程方式生成 CSS。它们之间的主要区别在于语法、功能和工具生态…

本地部署,图片细节处理大模型Tile Controlnet

目录 什么是 Tile ControlNet&#xff1f; 工作原理 应用场景 优势与挑战 优势 挑战 本地部署 运行结果 未来展望 结论 Tip&#xff1a; 在近年来的深度学习和计算机视觉领域&#xff0c;生成对抗网络&#xff08;GAN&#xff09;和扩散模型等技术取得了显著的进展。…

理解和解决Spring框架中的事务自调用问题

在使用Spring框架进行企业级应用开发时&#xff0c;事务管理是保证数据一致性和系统稳定性的关键技术。Spring提供的Transactional注解允许开发者轻松声明方法的事务行为&#xff0c;但不正确的使用可能导致事务不被正确触发&#xff0c;尤其是在方法自调用的场景中。本文将深入…

NAND Flash 常用命令

NAND Flash 常用命令 NAND Flash 常用命令主要包括以下几类&#xff1a;重置命令、读取信息命令、状态命令、页面读取命令、页面编程命令、拷贝命令、擦除命令。具体命令如下&#xff1a; 重置命令&#xff1a; ResetSynchronous ResetReset LUNHard Reset 读取信息命令&am…

技术文件国产化准备

技术文档的本地化涉及调整内容以满足特定目标市场的文化、语言和技术要求。这一过程超越了简单的翻译&#xff0c;确保文件在文化上适合预期受众&#xff0c;在技术上准确无误。适当的准备对于成功的本地化至关重要&#xff0c;以下步骤概述了一种全面的方法。 分析目标受众 …

Elasticsearch7.5.2 常用rest api与elasticsearch库

目录 一、rest api 1. 新建索引 2. 删除索引 3. 插入单条数据 4. 更新单条数据 5. 删除单条数据 6. 查询数据 二、python elasticsearch库 1. 新建索引 一、rest api 1. 新建索引 请求方式&#xff1a;PUT 请求URL&#xff1a;http://ip/&#xff08;your_index_nam…

二十四、常用API之Object

前面学习的Java的语法基础&#xff0c; 后面的几篇介绍一下Java的常用API 那么什么是API&#xff1f;&#xff08;Application Programming Interface,应用程序编程接口&#xff09; API就是一组用于构建和集成应用软件的定义和协议。 学习类的过程就是学习Java的过程&#xff…

JAVA实现智能问答助手-GPT4o+向量数据库+FunctionCalling

本文基于上一篇文章GPT向量数据库Function calling垂直领域小助手进行了改进&#xff0c;对其中的循环请求GPT、FuctionCalling循环请求、MSGList缩容等进行了修改和优化&#xff0c;使的相关请求更加抽象和方便后续做延伸。文章中涉及业务属性的内容已经进行了过滤&#xff0c…

在Visutal Studio 2022中完成D3D12初始化

在Visutal Studio 2022中完成DirectX设备初始化 1 DirectX121.1 DirectX 简介1.2 DirectX SDK安装2 D3D12初始化2.1 创建Windwos桌面项目2.2 修改符合模式2.3 下载d3dx12.h文件2.4 创建一个异常类D3DException,定义抛出异常实例的宏ThrowIfFailed3 D3D12的初始化步骤3.1 初始化…