OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9470|回复: 8

ble-01模块连续传大量的数据会丢

[复制链接]

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
发表于 2021-7-6 11:52:13 | 显示全部楼层 |阅读模式
1金钱
用ble-01模块传4000个数据到手机,只能传500个左右。请教群里的高手4000个数据到底可以一次连续传不?

最佳答案

查看完整内容[请看2#楼]

我妥协了,把16进制转成字符串,分成16次发
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2021-7-6 11:52:14 | 显示全部楼层
我妥协了,把16进制转成字符串,分成16次发
回复

使用道具 举报

6

主题

889

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1468
金钱
1468
注册时间
2020-8-19
在线时间
333 小时
发表于 2021-7-6 12:44:16 | 显示全部楼层
模块内部为 512 字节 FIFO 数据缓存大小,可以看看资料里面的数据打包机制,4000不可行
回复

使用道具 举报

2

主题

369

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4241
金钱
4241
注册时间
2020-7-24
在线时间
714 小时
发表于 2021-7-6 14:42:44 | 显示全部楼层
要分包发送了
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2021-7-6 15:27:33 | 显示全部楼层
是的,分包发送,但是如果中间数据有0x00的就结束发送,usprintf(SendData,500)。这个500长度无效,转成字符串嘛信息量大增,且容易死机。晕
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2021-7-6 15:52:39 | 显示全部楼层
    va_list ap;
    va_start(ap, fmt);
    vsprintf((char *)USART2_TX_BUF, fmt, ap);
    va_end(ap);

    while (DMA1_Channel7->CNDTR != 0);
    UART_DMA_Enable(DMA1_Channel7, strlen((const char *)USART2_TX_BUF));         这是原子的源码

我的缓存里的数据都是16进制数,按vsprintf((char *)USART2_TX_BUF, fmt, ap);这个重定向到串口2函数的规则是把缓存格式化后发出去。我只是简单这么弄vsprintf(USART2_TX_BUF);发送数据只要遇到0x00就停止了,后面的数据不发了。分包发没有问题,遇0不发怎么解决啊?群里的高手不吝赐教啊
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2021-7-6 15:57:59 | 显示全部楼层
for(t=0;t<sizeof((const char*)USART2_TX_BUF);t++){
        USART_SendData(USART2, USART2_TX_BUF[t]);   
while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);
我把两行用dma发送的代码改成这样子的3行,就是取消dma,想利用长度去控制发送长度的问题,依然遇0不发,这问题太难搞了。
回复

使用道具 举报

45

主题

267

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1091
金钱
1091
注册时间
2018-6-24
在线时间
156 小时
 楼主| 发表于 2021-7-7 13:02:53 | 显示全部楼层
发送hex可节约系统资源,已解决遇0停发问题
回复

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2018-2-6
在线时间
38 小时
发表于 2023-4-4 01:08:01 | 显示全部楼层
wdmvw 发表于 2021-7-7 13:02
发送hex可节约系统资源,已解决遇0停发问题

大神能细说下怎么解决的吗?能分享一下吗
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 15:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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