Spi通信,写操作时,发送缓冲区非空停留在while里面。arm a5与w5500芯片udp网络通信。网络调试助手界面及sscom无法点击
问题描述
w5500 与SAMA5D3x处理器通过硬件spi实现网络通信。采用w5500自带的函数进行udp通信,接口函数sendto,发送100Hz的数据一段时间后,程序停留在函数SPI_write()的发送数据寄存器非空的while循环里面。如下
while(spi->SPI_SR & SPI_SR_TDRE==0);
解决方法
因为官网驱动,又不是嵌入式软件专业,没有怀疑官网程序的问题。前一段时间正常运行,按照说明书讲DR赋值数据后,硬件将其移入移位寄存器,寄存器SR对应位设置为1,不会进入死循环。后面不行了,自己手动在while内部设置超过阈值则return,解决了卡死问题。
正点原子的论坛关于stm32 spi通信发送一个数据后卡死在缓冲区非空,也是做了这样的处理。回答是项目比较大,调试时候发现的。
理论的基础是实践!一定要根据实际情况分析解决问题,不能照本宣科,一味追崇。
不容易啊,困扰了我半年的问题!!
另外,网络调试助手和sscom在接收100Hz数据时间一长,界面就无法点击,保存数据的窗口也弹不出,原因是维持ui的线程被打断,最好将数据保存到文件,不刷新界面。
小记
2022-02-09,初九。初十上班,今天算加班了,不过有红包挺不错的。
Spi通信,写操作时,发送缓冲区非空停留在while里面。arm a5与w5500芯片udp网络通信。网络调试助手界面及sscom无法点击相关推荐
- [hbase] hbase写操作时对wal和memstore的操作顺序
一般我们说先记录在预写日志(wal),然后再写入缓存(memstore),实际上我们从源码中可以发现有一些小小的偏差. 实际操作顺序应该是: 1 hbase做写操作时,先记录在本地的wal(Write ...
- 假定主存地址位数为32位,按字节编址,主存和cache之间采用直接映射方式,主存块大小为1个字,每字32位,写操作时采用直写(Write Throght)方式,则能存放32K字数据的cache的总容量
5单选(1分) 假定主存地址位数为32位,按字节编址,主存和cache之间采用直接映射方式,主存块大小为1个字,每字32位,写操作时采用直写(Write Throght)方式,则能存放32K字数据的c ...
- 在layui中使用ajax传值给后台,解决layui批量传值到后台操作时出现传值为空的问题...
如图,前台的样子,data的参数为 [ {"good_id":1,"good_name":"标样-总磷","good_num&qu ...
- 【Zynq UltraScale+ MPSoC】基于LWIP模板的udp通信与测试(一):网络调试助手和PS端的简单通信
文章目录 一.前言 二.PL端的配置 三.PS端的程序设计 1.LWIP的UDP服务器模板介绍 readme main.c udp_perf_server platform_zynqmp.c 2.具体 ...
- python写网络调试助手_Qt开源作品4-网络调试助手
## 一.前言 网络调试助手和串口调试助手是一对的,用Qt开发项目与硬件通信绝大部分都是要么串口通信(RS232 RS485 Modbus等),要么就是网络通信(TCP UDP HTTP等),所以一旦 ...
- 【上位机】通过QTCreator编写WIFI上位机与网络调试助手通信绘制曲线
文章目录 前言 一.使用QT Creator编写上位机 二.上位机与网络调试助手联调 三.总结 前言 17年电赛H题中要求编写WIFI上位机实现远程幅频特性曲线显示, 以下是本人在近期摸索出来的一些心 ...
- UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)
目录 一.使用UE4建立TCP客户端 二.使用网络调试助手建立服务端 三.基于网络调试助手的服务端与UE客户端通信 四.基于python的TCP服务端与UE客户端通信 一.使用UE4建立TCP客户端 ...
- Python网络编程(1.利用socket(udp)+网络调试助手,发送数据)
1.socket(简称 套接字) 是进制间通信的一种方式,它与其他进程间通信的一个主要不同是: 它能实现不同主机间的进程间通信,我们网络上各种各样的服务器大多数都是基于Socket 来完成通信的 2 ...
- Netty 客户端与网络调试助手通信实验
序言: 微微一笑,这是一个微微波澜的时代,相较于过去冷兵器时代,多了些什么.又少了些什么-- 倘若我生于那个时代,微微一笑,毅然从兵,或许因为愚忠死得其所,但是却尽了一定时间内守护家人的意愿,或许会做 ...
最新文章
- 使用Python和OpenCV捕获鼠标事件,并裁剪图像
- java中位与运算符_Java中位运算符和的区别
- OpenCV 直方图的计算和绘制
- 基于MATLAB的车牌定位和识别
- cisco数据中心理论小记-3
- HDU 1950 Bridging signals
- java jol原理_Java对象布局(JOL)实现过程解析
- 子窗体 记录选择_如何设计一个简单的Access登录窗体(1)
- java基本数据类型自动转包装类_Java基础教程之基本类型数据类型、包装类及自动拆装箱...
- 从入门到入土:Python爬虫学习|实例练手|爬取LOL全英雄信息及技能||异步加载|初级难度反扒处理|寻找消失的API
- Git前世今生-版本控制软件的发展
- Latex初学者指南
- [2020 年百度之星·程序设计大赛 - 复赛] Battle for Wosneth
- 基于trustonic tee使能MTK Widevine L1(SVP)
- linux飞行模式切换,光遇飞行的两种模式区别 飞行模式切换和区别分析
- HTML中<a></a>标签的四大功能 必看!必看!!必看!!!
- IDEA Maven下载依赖时报错: ERROR - #org.jetbrains.idea.maven - Cannot reconnect.
- Android基础操作-----SuppressLint和SuppressWarnings
- android百度地图路线查询,Android百度地图——路线规划搜索
- 雷电模拟器运行一直不动解决方案
热门文章
- 适用于CodeJam的输入输出方式
- Jimmer彻底完成了,一个面向Java/Kotlin的革命性ORM
- away3D操纵三维物体详解
- 面向征信的区块链模式设计与应用研究
- 快速上手Appium(一)-两种方式安装Appium
- 营改增后计算机 维护费税率,维保费税率可以是10%吗_税率
- AndroidStudio 集成海康威视 Android SDK,集成萤石Android SDK。
- 俞敏洪、马云、牛根生、史玉柱 经典语录
- 浅谈tcp协议与tcp_tw
- tcp_tw_reuse、tcp_tw_recycle和tcp_timestamps