你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

发送大量数据,程序中怎么匹配stm32开发板和PC上位机

[复制链接]
dingshidong 提问时间:2012-7-23 20:46 /
 USb做虚拟串口。


void USB_Send_Data(u16* data_buffer, u8 len)  //调用的此函数发送数组

{  
  count_in=len;  
  UserToPMABufferCopy(data_buffer, ENDP1_TXADDR, count_in);  
  SetEPTxCount(ENDP1, count_in);  
  SetEPTxValid(ENDP1);  



上面帖子是可以发送64字节数据,不管是u8还是u16类型。
现在要发送的远远不止几十个字节,是8千字节到2万4千字节。
现在是单向传输,从stm32开发板往电脑上微机发送数据,开的单缓冲,缓冲区设置大小为512字节。
//b是数组名,offset是地址的偏置,count计数
USB_Send_Data(b+offset, 64); //每次发送64字节
offset+=64;
count -=64;
delay_1us(100);        //delay 100us  
  发现当发送8000字节时,每发送64个字节要延迟50us,才能保证数据不丢包,8000个字节是完整的,数据的接收是通过串口调试助手接收的,波特率一般设置为115200,通过调试助手保存数据txt.
但是,当发送2万4千个字节时,要保证数据不丢包,每发送64字节要延时600us.
因为包与包之间的延时增加,一定使得USB的传输速率大大降低,所以,请问:每发送64字节为什么要加延时才能保证串口调试助手接受的数据完整不丢包,发送大量数据,程序中怎么匹配stm32开发板和PC上位机,才能保证数据一完整不丢包,不会被冲掉或覆盖掉?
收藏 评论0 发布时间:2012-7-23 20:46

举报

0个回答

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版