打印
[STM32F4]

STM32F4Cube库CDC类试用手记(含USB全速/高速和VC测试程序)

[复制链接]
楼主: 碧云天书
手机看帖
扫描二维码
随时随地手机跟帖
121
谢谢分享,学习了

使用特权

评论回复
122
feima1314| | 2015-5-13 11:06 | 只看该作者
目前正学习USB通信,求高手指导,QQ:1204862757

使用特权

评论回复
123
开场戏| | 2015-5-18 16:42 | 只看该作者
楼主,您好!我现在刚开始学习STM32F4,需要做一个数据采集模块,并且需要用USB和上位机通信,能不能用你这个程序呢?还有几点不明白:比如在这个usbd_desc.c函数里,你说不用修改,但是这里面的VID和PID每个芯片不都不一样吗?我现在用Driver Studio自己写了个驱动程序,而你提供的是ST的虚拟串口驱动,这个ST的串口驱动程序有什么作用呢?还有最后一点,你这个给的程序应该就是固件程序吧,可以这么理解吗?因为我现在刚开始学习USB,很多问题都不懂,如果有幼稚的问题,请谅解

使用特权

评论回复
124
soso1217| | 2015-5-20 21:07 | 只看该作者
我的stm32l152rc cdc,驱动装上了,端口号都出现了也,bushound可以正常收发数据,怎么串口助手打不开端口,而且串口助手也会死掉,求大神支招

使用特权

评论回复
125
mark0668| | 2015-5-24 00:19 | 只看该作者
学习一下

使用特权

评论回复
126
碧云天书|  楼主 | 2015-5-24 10:44 | 只看该作者
开场戏 发表于 2015-5-18 16:42
楼主,您好!我现在刚开始学习STM32F4,需要做一个数据采集模块,并且需要用USB和上位机通信,能不能用你这 ...

VID和PID是识别设备的,不用改。只要使用STM32的虚拟串口驱动,VID和PID都一样。
你可以把这个示例当作STM32的固件程序,编译完以后要刷到STM32里的。
你不需要再写自己的Windows USB驱动程序了,ST的虚拟串口驱动就可以完成应用程序与USB硬件的数据中继传输。
在Windows应用程序里,只需要简单地打开虚拟串口,就可以像读写普通串口一样与STM32进行数据通讯。

使用特权

评论回复
127
碧云天书|  楼主 | 2015-5-24 10:44 | 只看该作者
soso1217 发表于 2015-5-20 21:07
我的stm32l152rc cdc,驱动装上了,端口号都出现了也,bushound可以正常收发数据,怎么串口助手打不开端口 ...

你换一台计算机试试。我用串口助手试过,没问题的。

使用特权

评论回复
128
开场戏| | 2015-5-24 15:19 | 只看该作者
碧云天书 发表于 2015-5-24 10:44
VID和PID是识别设备的,不用改。只要使用STM32的虚拟串口驱动,VID和PID都一样。
你可以把这个示例当作ST ...

那如果我现在想用我自己写得那个驱动程序,像什么PID和VID就要改了?还有在usbd_conf.c这个函数里面的引脚配置可以不可以说一下,因为刚接触,然后你的注释又是简写的英文,不太看得懂!

使用特权

评论回复
129
soso1217| | 2015-5-25 09:45 | 只看该作者
碧云天书 发表于 2015-5-24 10:44
你换一台计算机试试。我用串口助手试过,没问题的。

图片是打开串口助手时候的数据,不知道怎么回事,枚举是成功的  bushound收发数据也可以,就是打不开串口助手,换机器了 也换串口助手了

使用特权

评论回复
130
heisexuanwo| | 2015-5-25 10:13 | 只看该作者
                if(SystickTime > 50)
                {
                        HAL_GPIO_TogglePin (GPIOB,GPIO_PIN_4);
                        HAL_GPIO_TogglePin (GPIOB,GPIO_PIN_5);       
                        //CDC_Transmit_FS(UserRxBufferFS ,20);
                        CDC_Transmit_FS(datausb ,10);
                        SystickTime = 0;
                }
我这里设置USB发送,一旦设置的时间间隔值比较小的时候,USB设备就不能识别了,必须设置发送间隔大于等于500ms才能正常工作,一直没搞清除为什么

使用特权

评论回复
131
碧云天书|  楼主 | 2015-5-31 23:32 | 只看该作者
soso1217 发表于 2015-5-25 09:45
图片是打开串口助手时候的数据,不知道怎么回事,枚举是成功的  bushound收发数据也可以,就是打不开串口 ...

你在串口助手加入了流控制吗?我用串口助手的设置如下图所示,你照样试试看。如果还不行,你发张串口助手的贴图看看。

使用特权

评论回复
132
碧云天书|  楼主 | 2015-5-31 23:47 | 只看该作者
本帖最后由 碧云天书 于 2015-5-31 23:48 编辑
开场戏 发表于 2015-5-24 15:19
那如果我现在想用我自己写得那个驱动程序,像什么PID和VID就要改了?还有在usbd_conf.c这个函数里面的引 ...
如果用你的驱动程序,就不能用虚拟串口了。程序有很多地方需要修改。
STM32F407的数据手册和参考手册至少应该通读一遍。在数据手册的附录“USB OTG high speed (HS) interface solutions”中有ULPI接口的描述,要对照前面的电路图,和程序一起对照着看。

使用特权

评论回复
133
碧云天书|  楼主 | 2015-5-31 23:56 | 只看该作者
heisexuanwo 发表于 2015-5-25 10:13
if(SystickTime > 50)
                {
                        HAL_GPIO_TogglePin (GPIOB,GPIO_PIN_4);

你用的不是本楼的示例程序吧?我不清楚你程序的结构,根据你的描述,可能是定时发送的方式传输数据。这种方式可靠性不高,建议改用查询握手的方式,在发送之前,先检查USB设备状态,只在设备准备好之后才发送数据。

使用特权

评论回复
134
开场戏| | 2015-6-1 09:48 | 只看该作者
碧云天书 发表于 2015-5-31 23:47
如果用你的驱动程序,就不能用虚拟串口了。程序有很多地方需要修改。
STM32F407的数据手册和参考手册至少应 ...

这么麻烦的啊!好吧!谢谢你啊

使用特权

评论回复
135
q244529200| | 2015-6-15 14:37 | 只看该作者
学习啦  多谢楼主分享

使用特权

评论回复
136
xmetoo| | 2015-6-23 10:41 | 只看该作者
谢谢楼主的讲解

使用特权

评论回复
137
gzbeep| | 2015-7-2 16:22 | 只看该作者
好贴要顶,开放源码资料精神要顶

使用特权

评论回复
138
china99788| | 2015-7-7 19:46 | 只看该作者
准备搞USB3300的程序,能找到这样一篇**,可以少走很多弯路

使用特权

评论回复
139
sz_flag| | 2015-7-21 17:19 | 只看该作者
楼主太厉害了!!

使用特权

评论回复
140
812515899| | 2015-7-30 11:01 | 只看该作者
楼主,我现在刚接触USB,想做USB转SPI,是不是只要参照你这个转串口换成转SPI就行了呢,还有驱动层怎么开发呢,是用libusb可以做吗,USB下面有好多类,什么CDC,MSC,HID,那我应该要用什么类去做这个事情呢?希望楼主给点建议,不知道现在还会不会回复。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则