完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教各位一个问题
串口1波特率为921600,以10hz的频率接收数据,每次接受的数据有两条,第一条数据是147字节,以n结尾,第二条是205字节,以n结尾,这两条是连续的, 检测设置如下 uart_enable_pattern_det_baud_intr(uart_port, 'n', 1, 9, 0, 0); 代码中Pattern Queue Size是20, RING_BUFFER_SIZE是2048, 但是一直显示以下warning,会丢失数据Code: Select all W (8464) uart1: Ring Buffer FullW (8514) uart1: Pattern Queue Size too smallW (8614) uart1: pos:83W (8714) uart1: pos:147W (8814) uart1: pos:205W (8914) uart1: pos:147W (9014) uart1: pos:205W (9114) uart1: pos:147W (9214) uart1: pos:205W (9314) uart1: pos:147W (9414) uart1: pos:205W (9514) uart1: pos:147W (9614) uart1: pos:205W (9714) uart1: pos:147W (9814) uart1: pos:205W (9914) uart1: pos:147W (10014) uart1: pos:205W (10114) uart1: pos:147W (10214) uart1: pos:205W (10264) uart1: Ring Buffer FullW (10314) uart1: Pattern Queue Size too small |
|
相关推荐
2个回答
|
|
官方的串口例程并不好用,用的是队列在空闲的时候接收,即使不运行其他历程只接收在队列满了后释放队列过程中有数据来了就会丢了。有两种方法,1.每次传少于队列长度的数据,然后发送端等待一会再继续发。2.不要使用队列方式,也就是不要用uart_driver_install,然后和你写单片机驱动一样去写串口驱动。串口有缓冲区,最大可以设置1024字节,多快都不会丢数据。所有芯片官方例程只是参考,只会套例程不会写出高效率程序~
|
|
|
|
从您提供的信息来看,您在使用串口通信时遇到了数据丢失的问题。这可能是由于以下几个原因导致的:
1. **Ring Buffer Size**:您的RING_BUFFER_SIZE设置为2048字节,但是每次接收的数据总共为352字节(147字节 + 205字节)。如果数据接收频率较高,可能会导致缓冲区溢出。您可以尝试增加RING_BUFFER_SIZE的值,以确保有足够的空间存储接收到的数据。 2. **Pattern Queue Size**:您的Pattern Queue Size设置为20,这意味着模式检测队列只能存储20个模式。如果数据接收频率较高,队列可能会被填满,导致新的数据无法被检测。您可以尝试增加Pattern Queue Size的值,以确保模式检测队列有足够的空间存储模式。 3. **波特率和频率**:您的波特率为921600,接收频率为10Hz。这意味着每秒钟需要接收10组数据,每组数据为352字节。在这种情况下,您需要确保硬件和软件都能够处理这种高速率的数据接收。如果处理速度跟不上,可能会导致数据丢失。 4. **中断处理**:请检查您的中断处理函数是否能够及时处理接收到的数据。如果中断处理函数执行时间过长,可能会导致数据接收不及时,从而引发数据丢失。 为了解决这个问题,您可以尝试以下方法: 1. 增加RING_BUFFER_SIZE和Pattern Queue Size的值,以确保有足够的空间存储接收到的数据和模式。 2. 优化中断处理函数,确保其能够快速处理接收到的数据。 3. 如果可能的话,降低波特率或接收频率,以减轻硬件和软件的负担。 4. 检查硬件连接和配置,确保没有其他问题导致数据丢失。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。 |
|
|
|
只有小组成员才能发言,加入小组>>
427浏览 6评论
360浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
339浏览 5评论
345浏览 4评论
324浏览 4评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-31 16:25 , Processed in 1.031215 second(s), Total 80, Slave 65 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号