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

发送大量数据,程序中怎么匹配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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版