STM32F103C8T6如何将变量定义到指定地址
STM32L010F4P6的ADC多通道采集,采用扫描+DMA的方式,采集到不同通道的值会一起变化
STM32F103 做的USB CDC 串口调试助手打不开
DSP傅里叶变换如何在f103CBT6上使用
stm32n657的TIM8定时器
向 “HAL_RTC_GetTime” 函数传递的第一个参数出现指针类型不兼容警告
无法从编码器模式下的 TIM1 获取计数值
定时器输出PWM控制电机的问题
在 STM32CubeIDE 中正确设置 STM32F103C8T6 的 Flash 容量
咨询下,新项目打算用STM32F103的USB与工控机或PAD进行通讯,问题如下
微信公众号
手机版
如果这样就很难保证不丢数据。如果你将ADC生产数据的时间变长,比方变长3ms或5ms会怎么样呢?先锁定原因,再找解决办法。
是的,我也是怎么做的,貌似是usb发送给电脑出现了问题。
如果用的是虚拟串口,在异常的时候,看一下设备管理器里面的串口设备是否正常,如果不正常,可能是因为USB驱动或者USB使用的问题。同时也可以增加串口打印,确认程序是正常的。可以正常的采集数据。另外看一下传输1K的空间,USB的底层驱动缓冲区是否比较小。建议开大一些。
非常同意你的观点,先要找到问题再解决问题,或者尝试一个新的思路,USB的传输不是有有缓冲的吗?没必要进行实时传输,有了缓冲为什么还会有数据丢失?
这是我觉得奇怪的地方。
下面是正常情况和数据丢失(数据丢失前通信异常)。
正常
数据丢失
正常情况有许多等待响应的帧,没有数据就是不响应,有数据在同步后就有数据跟上了,异常时没有等待发送的帧,如下图:
正常帧
间隔大
这个不行的,受USB协议的约束。
你好!
我不是用的中断,我用的是批量,不过我也试过中断的了,并比较了中断和批量的区别。
1:中断确实如你说的1mS一次,在1mS之间没有许多的发送了,不过丢包的更多。
2:批量的在1mS间有许多发生。
偶尔有丢失.rar
2022-10-13 10:46 上传
点击文件名下载附件
下载积分: ST金币 -1797.94 KB, 下载次数: 3, 下载积分: ST金币 -1