这个问题另开一个帖子较好。
我的理解是您希望有一个控件,用于提供USB的数据传输功能,“这样就为我们这些USB驱动菜鸟做了件天大的善事”。
但后面一句“这样我们可以用它下载程序和PC与STM32进行数据交换及通讯”不太明白,“下载程序”是指用现有的通过UART的ISP还是指通过USB?
俺的意思是全通过USB接口
这些天跟我一起去开研讨会的研究生痴迷了~~~
回来就拿着那个小玩具(STM32做的),程序通过USB升级,...觉得很好玩...
今天要和俺抢STM32开发板玩,...还说要参加什么模拟大赛用STM32.
既然STM32通过USB下载程序很方便,那么再通过USB与外界进行数据交换岂不更好???
这样在当今PC上的串口快要"灭绝"前,STM32要加上这个功能想想会是什么结果???
让人们放弃写USB驱动,像以前和串口通讯一样,在STM32的USB中断里读写数据.
不知俺这个想法能否实现???
re
支持hotpower...
这点ATMEL早想到了...ATMEL早就这么用了,只不过要等10秒.. 不爽.
牛人这么多,组织组织,写一个得了,:D
hehe,别拿砖头砸我!:D
哈哈~~~俺以后也用CVI搞一个~~~关键是没时间当USB菜鸟~~~
USB虚拟串口可以吗?
USB通信与串口通信的最大不同是定义了设备类(Class)的概念,而传统的串口通信中类的概念是由使用者自己定义的,或者说传统的串口通信提供了一个无格式的传输通道,而USB要求对数据传输格式进行定义。
因此各位的要求就变成了如何为USB通信定义一种数据传输格式,满足串口通信的无格式传输要求。估计这恐怕是长期以来没有这样的USB控件的原因之一吧。
请各位各抒己见,讨论一下如何能满足上述要求,又能够符合USB的特性。我们可以综合大家的意见,提出一个方案。
我这些日子也正好在研究上位机的驱动程序
我的打算是做成一个比较通用的固件以及配套的WINDOWS驱动,以后可以方便的移植减少修改。USB固件基本上要基于中断,因此用起来也无法完全跟串口一样。
固件部分在STM32 USB开发包里面的例程稍加修改即可,2个64字节的BULK EP 分别做IN 和OUT,相应修改下设备描述符、配置描述符以及端点、接口描述符。
串口的上位机软件很多所以用起来非常方便,而用USB来做的话就没这么方便了,都得自己完成,从底层驱动到界面程序,还是比较复杂的。我打算是做一个DLL库或者是个ACTIVEX控件,作为USB驱动程序和应用程序的中间层,将底层的驱动封装起来,提供给应用程序一个非常简单使用的接口,只要OPEN_USB()打开USB接口,write_usb(&writebuff, numBytesToWrite) read_usb(&readbuff, numBytesToRead)再一个close_usb(),这样4个函数就可以了。做成中间层的好处,在于其通用性,DLL或者控件可以方便的在WIN32/.NET/C#以及dephi等语言中引用,使用方便,这样可以屏蔽底层,无需了解驱动的相关内容,只要直接拿来开发应用程序即可。
另外再打算做一个类似与串口助手这类界面应用软件,专门针对这个USB固件的。这样也就无需再搞USB转串口这类东东了,直接USB了