找回密码
 立即注册

使用微信账号登录

只需一步,快速开始

查看: 6848|回复: 9

[QCC5系列] QCC512x UART偶尔会收不到数据,该如何配置使用?

[复制链接]
连续签到天数:1天
签到总天数:66天
签到总奖励:421金币
发表于 2021-7-13 18:56:58 | 显示全部楼层 |阅读模式

马上注册,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册  

×
不同板子的出现的概率不一样,有些挺高的,有些则很低。但对方发送的数据又不在缓冲区,应该是丢数据。

测量波形,没有异常,纯粹是、5120这边收不到而已。

代码如下:



  1. void uartInit(void)
  2. {
  3.     uint8 i;
  4.     UART_PIO uart_pios[] = {{PIO_UART_RX, UART_RX},
  5.                             {PIO_UART_TX, UART_TX}};

  6.     for (i = 0; i < ARRAY_DIM(uart_pios); i++)
  7.     {
  8.         uint16 pio = uart_pios.pio;
  9.         uint16 bank = PBANK(pio);
  10.         uint32 mask = POFFM(pio);

  11.         /* Setup uart PIOs with strong pull-up */
  12.         PanicNotZero(PioSetMapPins32Bank(bank, mask, 0));
  13.         PanicFalse(PioSetFunction(pio, uart_pios.func));
  14.         PanicNotZero(PioSetDir32Bank(bank, mask, 0));
  15.         PanicNotZero(PioSet32Bank(bank, mask, mask));
  16.         PanicNotZero(PioSetStrongBias32Bank(bank, mask, mask));
  17.     }

  18.     /* Assign task message handler */
  19.     theUARTStreamTask.task.handler = uartMessageHandler;

  20.     /* Get the sink for the uart */
  21.     theUARTStreamTask.uart_sink = StreamUartSink();
  22.     if(theUARTStreamTask.uart_sink != 0)
  23.     {
  24.         PanicNull(theUARTStreamTask.uart_sink);
  25.     }

  26.     /* Get the source for the uart */
  27.     theUARTStreamTask.uart_source = StreamUartSource();
  28.     if(theUARTStreamTask.uart_source != 0)
  29.     {
  30.         PanicNull(theUARTStreamTask.uart_source);
  31.     }

  32.     StreamConfigure(VM_STREAM_UART_CONFIG, VM_STREAM_UART_THROUGHPUT);

  33.     StreamConfigure(VM_STREAM_UART_SLEEP_TIMEOUT, 0);

  34.     /* Configure uart settings */
  35.     StreamUartConfigure(VM_UART_RATE_9K6, VM_UART_STOP_ONE, VM_UART_PARITY_NONE);

  36.     /* Register uart source with task */
  37.     MessageStreamTaskFromSink(StreamSinkFromSource(theUARTStreamTask.uart_source), &theUARTStreamTask.task);
  38. }
复制代码
  1. void uartRxdata(Source src)
  2. {
  3.     uint8 i;
  4.     uint16 length = 0;
  5.     const uint8 *data = NULL;

  6.     /* Get the number of bytes in the specified source before the next packet boundary */
  7.     if(!(length = SourceBoundary(src)))
  8.     {
  9.         return;
  10.     }
  11.    
  12.     /* Maps the specified source into the address map */
  13.     data = SourceMap(src);
  14.     PanicNull((void*)data);

  15.     /* Transmit the received data */
  16.     /*uart_data_stream_tx_data(data, length);*/

  17.     UART_DEBUG(("UART: Rx: length %d", length));
  18.     for(i = 0; i < length; i++)
  19.     {
  20.         UART_DEBUG((" data[%d] [%x]", i, data));
  21.     }
  22.     UART_DEBUG(("\n"));

  23.     /* Discards the specified amount of bytes from the front of the specified source */
  24.     SourceDrop(src, length);
  25. }
复制代码

  1. void uartMessageHandler (Task pTask, MessageId pId, Message pMessage)
  2. {
  3.     UNUSED((pTask));

  4.     switch (pId)
  5.     {
  6.         case MESSAGE_MORE_DATA:
  7.         {
  8.             uartRxdata(((MessageMoreData *)pMessage)->source);
  9.         }
  10.         break;

  11.         default:
  12.         break;
  13.     }
  14. }
复制代码

楼主热帖
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
连续签到天数:1天
签到总天数:25天
签到总奖励:133金币
发表于 2021-7-14 08:17:00 来自手机 | 显示全部楼层
关闭休眠试试,867x也有这个问题的。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:66天
签到总奖励:421金币
 楼主| 发表于 2021-7-14 09:28:21 | 显示全部楼层
bluetooth 发表于 2021-7-14 08:17
关闭休眠试试,867x也有这个问题的。

是dormant?还是 deep sleep?
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:168天
签到总奖励:2784金币
发表于 2021-7-14 10:04:35 | 显示全部楼层
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 1 反对 0

使用道具 举报

连续签到天数:1天
签到总天数:66天
签到总奖励:421金币
 楼主| 发表于 2021-7-14 10:27:20 | 显示全部楼层
骑着蟑螂去上学 发表于 2021-7-14 10:04
http://www.52bluetooth.com/portal.php?mod=view&aid=123

解决了。

CuratorDeepSleepConfig = 0x0000
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:4天
签到总奖励:16金币
发表于 2021-7-22 19:28:03 | 显示全部楼层
EdwardLee 发表于 2021-7-14 10:27
解决了。

CuratorDeepSleepConfig = 0x0000

功耗有增加吗?
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:66天
签到总奖励:421金币
 楼主| 发表于 2021-7-23 18:33:22 | 显示全部楼层
瞬间 发表于 2021-7-22 19:28
功耗有增加吗?

相对整体功耗,可以忽略不记吧。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:253天
签到总奖励:2463金币
发表于 2021-7-28 10:15:46 | 显示全部楼层
关于明天的事,我们后天就知道了。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:114天
签到总奖励:2214金币
发表于 2022-1-3 16:44:12 | 显示全部楼层
有 Tx的 write code嗎?
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

连续签到天数:1天
签到总天数:66天
签到总奖励:421金币
 楼主| 发表于 2022-3-22 19:55:10 | 显示全部楼层
保羅071977 发表于 2022-1-3 16:44
有 Tx的 write code嗎?

把睡眠关了就可以了。
积分商城 - 让您的金币更有价值!||官方Q群 - 让您的沟通更加及时!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

小黑屋|手机版|我爱蓝牙网 - 52Bluetooth

GMT+8, 2024-3-29 14:15 , Processed in 0.183380 second(s), 23 queries , Gzip On, MemCached On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表