
本帖最后由 zen2017 于 2017-4-2 23:43 编辑 程序是在CUBE生成的USB虚拟串口VCP基础上修改。 在不丢失数据的情况下,传输采集的数据1M字节,花了大约14秒,算下来每秒钟的传输速度大概是72K字节/秒。 想请教一下研究过虚拟串口的XD,这个速度还有提高的余地吗? 其他硬件情况: 1.数据采集。使用外部信号作为定时器源,在中断中进行数据采集。采集一个数据,需要进入中断14次。速度大约是0.03ms采集一个字节,但VCP传输的时候,要传输8字节。 2.还有一个5通道的AD转换,使用AD+DMA,0.1s进行一次AD手动采集。 3.同时还有一个SPI接口的128x64的oled实时显示状态,显示内容全部是8x16的ASCII码字符,所以这个屏幕采用的是虚拟屏幕,内部RAM有一个4x16=64字节的缓冲区,对应显示内容。更新这个屏幕是采用全屏幕重刷方式,使用SPI DMA中断传输显示内容的,我测试过,大约2ms更新一次屏幕内容(SPI采用的是4分频对应是36/4=9MHZ),是在DMA+SPI中断内部,实际消耗CPU的资源很有限,应该不到2ms的10%。 已经充分做了优化,包括采集的数据用FIFO方式存储,VCP传输的时候,直接使用FIFO里面缓冲区指针进行发送,不进行数据搬移。按道理应该和双缓冲区的效果一样。 就是VCP发送,采用的是1ms一次的SOF软中断里面判断是否有数据,如果有数据,则配置好对应的数据指针发送。 |
STM32F103C8出現找不到'STM32100B_EVAL/stm32100b_eval.h' file not found
STM32的DCode bus是连接到bus matrix的吗?参考手册描述和图片是不符吗?
stm32h743 usbh msc 读写 u盘 新购买的 u盘只能识别到但不能进行读写 ?
stm32f407无法配置定时器2为全部dma
STM32F103TBU6 封装是VFQFPN36 将PD0和PD1配置成CAN不成功是什么原因
stm32哪个系列芯片支持2个USB,主设备,且usb可以支持标准的uvc协议,哪里可以下载usb开发库
串口DMA + 空闲中断收发 ?
新手小白,SMT32 TP Tool Windows无法安装驱动怎么处理
F103RCT6芯片对AFIO->MAPR寄存器写入时出错
使用STM32捕获PWM时同时捕获2个通道时会出现捕获的频率值不准确的问题
传送不变的数据速率是:729KB/S
如果每次传送的数据用for循环修改成另一个值,则速度急剧下降为:652KB/S ??!!
同时,这个也说明我使用FIFO进行VCP传输数据管理,速度基本达到了所谓的双缓冲区的效果!
怎么持续收发, 求大神指点