问题描述

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无法点击相关推荐

  1. [hbase] hbase写操作时对wal和memstore的操作顺序

    一般我们说先记录在预写日志(wal),然后再写入缓存(memstore),实际上我们从源码中可以发现有一些小小的偏差. 实际操作顺序应该是: 1 hbase做写操作时,先记录在本地的wal(Write ...

  2. 假定主存地址位数为32位,按字节编址,主存和cache之间采用直接映射方式,主存块大小为1个字,每字32位,写操作时采用直写(Write Throght)方式,则能存放32K字数据的cache的总容量

    5单选(1分) 假定主存地址位数为32位,按字节编址,主存和cache之间采用直接映射方式,主存块大小为1个字,每字32位,写操作时采用直写(Write Throght)方式,则能存放32K字数据的c ...

  3. 在layui中使用ajax传值给后台,解决layui批量传值到后台操作时出现传值为空的问题...

    如图,前台的样子,data的参数为 [ {"good_id":1,"good_name":"标样-总磷","good_num&qu ...

  4. 【Zynq UltraScale+ MPSoC】基于LWIP模板的udp通信与测试(一):网络调试助手和PS端的简单通信

    文章目录 一.前言 二.PL端的配置 三.PS端的程序设计 1.LWIP的UDP服务器模板介绍 readme main.c udp_perf_server platform_zynqmp.c 2.具体 ...

  5. python写网络调试助手_Qt开源作品4-网络调试助手

    ## 一.前言 网络调试助手和串口调试助手是一对的,用Qt开发项目与硬件通信绝大部分都是要么串口通信(RS232 RS485 Modbus等),要么就是网络通信(TCP UDP HTTP等),所以一旦 ...

  6. 【上位机】通过QTCreator编写WIFI上位机与网络调试助手通信绘制曲线

    文章目录 前言 一.使用QT Creator编写上位机 二.上位机与网络调试助手联调 三.总结 前言 17年电赛H题中要求编写WIFI上位机实现远程幅频特性曲线显示, 以下是本人在近期摸索出来的一些心 ...

  7. UE4 TCP通信 (UE客户端与网络调试助手服务端、python服务端通信)

    目录 一.使用UE4建立TCP客户端 二.使用网络调试助手建立服务端 三.基于网络调试助手的服务端与UE客户端通信 四.基于python的TCP服务端与UE客户端通信 一.使用UE4建立TCP客户端 ...

  8. Python网络编程(1.利用socket(udp)+网络调试助手,发送数据)

    1.socket(简称 套接字)  是进制间通信的一种方式,它与其他进程间通信的一个主要不同是: 它能实现不同主机间的进程间通信,我们网络上各种各样的服务器大多数都是基于Socket 来完成通信的 2 ...

  9. Netty 客户端与网络调试助手通信实验

    序言: 微微一笑,这是一个微微波澜的时代,相较于过去冷兵器时代,多了些什么.又少了些什么-- 倘若我生于那个时代,微微一笑,毅然从兵,或许因为愚忠死得其所,但是却尽了一定时间内守护家人的意愿,或许会做 ...

最新文章

  1. 使用Python和OpenCV捕获鼠标事件,并裁剪图像
  2. java中位与运算符_Java中位运算符和的区别
  3. OpenCV 直方图的计算和绘制
  4. 基于MATLAB的车牌定位和识别
  5. cisco数据中心理论小记-3
  6. HDU 1950 Bridging signals
  7. java jol原理_Java对象布局(JOL)实现过程解析
  8. 子窗体 记录选择_如何设计一个简单的Access登录窗体(1)
  9. java基本数据类型自动转包装类_Java基础教程之基本类型数据类型、包装类及自动拆装箱...
  10. 从入门到入土:Python爬虫学习|实例练手|爬取LOL全英雄信息及技能||异步加载|初级难度反扒处理|寻找消失的API
  11. Git前世今生-版本控制软件的发展
  12. Latex初学者指南
  13. [2020 年百度之星·程序设计大赛 - 复赛] Battle for Wosneth
  14. 基于trustonic tee使能MTK Widevine L1(SVP)
  15. linux飞行模式切换,光遇飞行的两种模式区别 飞行模式切换和区别分析
  16. HTML中<a></a>标签的四大功能 必看!必看!!必看!!!
  17. IDEA Maven下载依赖时报错: ERROR - #org.jetbrains.idea.maven - Cannot reconnect.
  18. Android基础操作-----SuppressLint和SuppressWarnings
  19. android百度地图路线查询,Android百度地图——路线规划搜索
  20. 雷电模拟器运行一直不动解决方案

热门文章

  1. 适用于CodeJam的输入输出方式
  2. Jimmer彻底完成了,一个面向Java/Kotlin的革命性ORM
  3. away3D操纵三维物体详解
  4. 面向征信的区块链模式设计与应用研究
  5. 快速上手Appium(一)-两种方式安装Appium
  6. 营改增后计算机 维护费税率,维保费税率可以是10%吗_税率
  7. AndroidStudio 集成海康威视 Android SDK,集成萤石Android SDK。
  8. 俞敏洪、马云、牛根生、史玉柱 经典语录
  9. 浅谈tcp协议与tcp_tw
  10. tcp_tw_reuse、tcp_tw_recycle和tcp_timestamps