搜索
bottom↓
回复: 22

发一个stm32f4的usb虚拟串口程序

[复制链接]

出0入0汤圆

发表于 2012-12-31 01:08:38 | 显示全部楼层 |阅读模式
  最近在研究摄像头,需要传输图像到计算机,所以顺带研究了下usb虚拟串口。硬件平台是stm32f4_discovery.
使用eclipse+gcc开发。本程序只是基于官方的例程修改的,所以没什么创新。接触stm32不久,程序当中有问题
还请大家指出。


   感觉USB是个比较复杂的东西,学起来很费劲(我这人比较浮躁,看一会就看不下去了),大家有比较好的学习方法没?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-4-27 21:18:28 | 显示全部楼层
非常有用的资料!

出0入0汤圆

发表于 2013-5-7 23:05:09 | 显示全部楼层
好东西,顶一下,stm32f4真是个难以驾驭的怪兽

出0入0汤圆

发表于 2013-5-8 07:46:21 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2013-7-15 23:52:36 | 显示全部楼层
USB VCP 工作在device full speed,对于摄像头的图像数据,传输速度够快吗?

出0入0汤圆

 楼主| 发表于 2013-7-23 00:39:10 | 显示全部楼层
F1571w7984 发表于 2013-7-15 23:52
USB VCP 工作在device full speed,对于摄像头的图像数据,传输速度够快吗?

一般的应用够了。。

出0入0汤圆

发表于 2013-7-23 09:20:21 | 显示全部楼层
mark,以后学习学习,谢谢分享

出0入18汤圆

发表于 2013-8-10 12:18:51 | 显示全部楼层
F1571w7984 发表于 2013-7-15 23:52
USB VCP 工作在device full speed,对于摄像头的图像数据,传输速度够快吗?

算算你的数据量 就知道了     对于我来说  现在 10MB/s 都嫌弃慢

出0入0汤圆

发表于 2013-8-10 16:18:49 | 显示全部楼层
mark....
顶一个...

出0入0汤圆

发表于 2014-1-12 20:02:51 | 显示全部楼层
楼主,你那个工程是啥弄的···

出0入0汤圆

 楼主| 发表于 2014-1-12 21:53:52 | 显示全部楼层
kalo425 发表于 2014-1-12 20:02
楼主,你那个工程是啥弄的···

Eclipse+GCC

出0入0汤圆

发表于 2014-1-13 08:52:27 | 显示全部楼层
大哥。你用Eclipse 能编译么?具体的版本,jlink之类的没问题吧。如果没问题,我就试试啦。·····因为搞过一阵android,对eclipse有点熟悉的···

出0入0汤圆

发表于 2014-1-13 09:51:21 | 显示全部楼层


我看到了你以前的一个 开发环境搭建 文档····
现在就是 下载程序  和 debug 不会弄····

出0入0汤圆

 楼主| 发表于 2014-1-13 12:56:24 | 显示全部楼层
kalo425 发表于 2014-1-13 08:52
大哥。你用Eclipse 能编译么?具体的版本,jlink之类的没问题吧。如果没问题,我就试试啦。·····因为 ...

没问题,下载和调试请参考Jlink的文档

出0入0汤圆

发表于 2014-3-3 16:24:36 | 显示全部楼层
--------------------------------------------------
你好,我看了你的 虚拟串口的例子。关于发送接收数据的问题,有点困惑。能指点下么?

  1. void USB_SEND(uint8_t* Buf, uint32_t Len)
  2. {
  3.         for( int i= 0;i<Len;i++)
  4.         {
  5.                 APP_Rx_Buffer[APP_Rx_ptr_in]=*(Buf++);
  6.                 APP_Rx_ptr_in++;
  7.                 // To avoid buffer overflow
  8.             if(APP_Rx_ptr_in == APP_RX_DATA_SIZE)
  9.                 {
  10.                  APP_Rx_ptr_in = 0;
  11.                 }
  12.         }


  13. }
复制代码

这个事你写的 发送的 函数,就是闹不明白·····,怎么把buffer 填充给 那个 APP_Rx_Buffer,它就发送出去了,他娘的,它不是 RX_Buffer么?
算了,不管了,能发送就行---------------------------->问题来了,

如何接收呀,

从网上查资料,说虚拟串口 和 波特率没啥大关系。那怎么控制它接收呢??

历程里面那个 出现的
VCP_DataRx

  1. static uint16_t VCP_DataRx (uint8_t* Buf, uint32_t Len)
  2. {
  3.   uint32_t i;
  4.   
  5.   for (i = 0; i < Len; i++)
  6.   {
  7.     USART_SendData(USART3, *(Buf + i) );
  8.     while(USART_GetFlagStatus(USART3, USART_FLAG_TXE) == RESET);
  9.   }

  10.   return USBD_OK;
  11. }
复制代码


彻底晕了,怎么又用上串口接收了······

到底咋回事呀,咋发送,咋接受呀??

看了半天了,晕了···


出0入0汤圆

 楼主| 发表于 2014-3-3 16:54:52 | 显示全部楼层
kalo425 发表于 2014-3-3 16:24
--------------------------------------------------
你好,我看了你的 虚拟串口的例子。关于发送接收数据 ...

USB是主从机模式,只要你往Buffer里写数据,主机就会读过去。
至于接收,我的理解是,USB主机往Buffer写数据后,产生中断,单片机在中断中处理接到的数据。
你说的用串口接收,是用串口转发USB主机下发的数据。这样就可以把单片机作为U转串模块使用了。

出0入0汤圆

发表于 2014-3-3 16:57:28 | 显示全部楼层
lngdzph 发表于 2014-3-3 16:54
USB是主从机模式,只要你往Buffer里写数据,主机就会读过去。
至于接收,我的理解是,USB主机往Buffer写 ...



再问你一下, 这个速度

317KB @ 152.8mb  啥意思呀?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-3-3 17:00:11 | 显示全部楼层
kalo425 发表于 2014-1-13 09:51
我看到了你以前的一个 开发环境搭建 文档····
现在就是 下载程序  和 debug 不会弄···· ...

这里有个文档,我就是依照这个文档配置的下载和调试,你需要根据自己的实际情况,做一些更改。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-3-3 17:01:32 | 显示全部楼层
kalo425 发表于 2014-3-3 16:57
再问你一下, 这个速度

317KB @ 152.8mb  啥意思呀?

没用过这种软件,我调试时就用的普通串口助手

出0入0汤圆

发表于 2015-1-14 11:49:22 | 显示全部楼层
请问一下LZ的这个应该是没有PHY的FS吧  有测试过传输速度有多少么?
我现在用一个相似的  速度大概只有70KB左右  太慢了 不够用 实在懊恼

出0入0汤圆

 楼主| 发表于 2015-1-19 14:08:31 | 显示全部楼层
superfight 发表于 2015-1-14 11:49
请问一下LZ的这个应该是没有PHY的FS吧  有测试过传输速度有多少么?
我现在用一个相似的  速度大概只有70KB ...

我最高试验了1M的波特率,速度没测试,传大数据串口助手会卡死

出0入0汤圆

 楼主| 发表于 2015-1-19 14:13:31 | 显示全部楼层
superfight 发表于 2015-1-14 11:49
请问一下LZ的这个应该是没有PHY的FS吧  有测试过传输速度有多少么?
我现在用一个相似的  速度大概只有70KB ...

我没用PHY,就是普通的Discovery板子,70KB有点慢了,你看看是不是在处理发送数据的时候出了问题,而且用虚拟串口快速传输数据,电脑会受不了,可能是ST的驱动不完善

出0入0汤圆

发表于 2017-8-8 13:48:25 | 显示全部楼层
竟然有eclipse+gcc玩32的  少见  牛
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 04:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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