打印
[技术问答]

NUC980DK61YC的UART接收大数据量数据时数据无法读出

[复制链接]
2262|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我在使用NUC980DK61YC的串口接收数据时发现串口接收数据量过大时,读串口缓存区数据读不到,只能等到缓存区满才能一次性读出来。串口数据量小的时候接收数据时没有问题的。请问这是怎么回事?

使用特权

评论回复
沙发
liuziliang|  楼主 | 2024-7-12 09:15 | 只看该作者

使用特权

评论回复
评论
liuziliang 2024-7-12 09:16 回复TA
这是正常状态下的串口缓存区数据读取量 
板凳
liuziliang|  楼主 | 2024-7-12 09:17 | 只看该作者

这是数据量大时从串口缓存区向外读数据的返回值。1ms读一次,中间并不会读到。知道我设定的缓存区(2040)满了,才能将数据读出来。

使用特权

评论回复
地板
riplay| | 2024-7-12 14:28 | 只看该作者
应该是程序里接收到大量串口数据后进行了某些处理,占用大量系统的资源或优先级。导致了低优先级的UART中断或则定时接收无法进入。

使用特权

评论回复
5
丙丁先生| | 2024-7-13 07:16 | 只看该作者
合理设置UART中断的优先级

使用特权

评论回复
6
未说出口的像你| | 2024-8-23 14:37 | 只看该作者
在使用NUC980DK61YC的串口接收数据时,遇到串口接收数据量过大导致读串口缓存区数据读不到的问题,可能是串口接收速度慢

使用特权

评论回复
7
我吃小朋友| | 2024-8-23 17:00 | 只看该作者
如果串口接收数据的速度比数据处理的速度慢,会导致数据在缓存区堆积,最终导致缓存区满。这种情况下,需要确保及时处理串口接收到的数据,避免数据堆积

使用特权

评论回复
8
失物招領| | 2024-8-23 19:00 | 只看该作者
串口接收数据写入缓存区时,如果数据量过大超过了缓存区的容量,会导致缓存区溢出,造成数据丢失。可以通过增大缓存区的大小来解决这个问题。

使用特权

评论回复
9
她已醉| | 2024-8-23 21:00 | 只看该作者
一般的话,如果数据处理的过程中出现阻塞,导致无法及时处理串口接收到的数据,也会导致缓存区数据堆积。确保数据处理的过程尽量不阻塞串口接收。

使用特权

评论回复
10
一只眠羊| | 2024-8-23 23:00 | 只看该作者
可能是串口接收数据的中断处理不及时,会导致数据在中断处理函数中没有及时读取,从而造成数据丢失或缓存区数据堆积。确保中断处理函数尽快读取串口接收数据。

使用特权

评论回复
11
月亮一键变蓝| | 2024-8-24 02:00 | 只看该作者
在数据量过大的情况下,可能会出现数据丢失的情况。可以考虑使用数据流控制或者缓冲区管理技术来避免数据丢失。

使用特权

评论回复
12
在曼谷的春| | 2024-8-24 04:00 | 只看该作者
可以通过调整串口接收数据处理的速度、增大缓存区的大小、优化数据处理算法等方式来解决串口接收数据量过大导致的问题。

使用特权

评论回复
13
将爱藏于深海| | 2024-8-24 08:00 | 只看该作者
我觉得可以考虑提高串口的速率试试呢?

使用特权

评论回复
14
温室雏菊| | 2024-8-24 12:00 | 只看该作者
是不是串口阻塞了,数据太大处理不过来啊

使用特权

评论回复
15
春日负喧| | 2024-8-24 14:00 | 只看该作者
你可以扩大缓冲区试试呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝