打印
[STM32F2]

请教虚拟串口程序实现

[复制链接]
1375|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wtch519361|  楼主 | 2014-12-5 14:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在做USB虚拟串口,与PC机的串口通信助手通信实现基本的自发自收功能,发现资料很少,官方库说明书上就一部分写到How to use the driver,就写到用到哪些函数,也没告诉怎么用,现在我有两个地方有疑问:
1.  usbd_cdc_core.c中函数usbd_cdc_Init(void *pdev,uint8_t cfgidx) 其中,cfgidx指什么我看了很多说明书和网上资料都没讲到
2.  说明书上讲到APP_DataRx (i.e. VCP_dataRx) is called by the CDC core,这个在主函数里面不用处理怎么能接受数据
3.  虚拟串口连接上后JTAG调试为什么用不了,一旦进入JTAG模式USB就断开连接了
我用的芯片是STM32F207,USB库用的是STM32_USB-Host-Device_Lib_V2.1.0  哪位高人能帮帮我啊:'(
沙发
airwill| | 2014-12-5 22:10 | 只看该作者
一旦进入JTAG模式USB就断开连接了, 这是因为终止了 USB 协议状态机, 断开属正常情况

使用特权

评论回复
板凳
mmuuss586| | 2014-12-6 11:36 | 只看该作者
可以用ST CUBE软件生成代码看看;

使用特权

评论回复
地板
玄德| | 2014-12-6 14:41 | 只看该作者
1、这些是底层的宏定义、结构体规定的格式,要下功夫才能搞清楚。我们只管用。
搜下CDC例程里面,初始化过程中 usbd_cdc_Init 函数的使用方法,看人家是怎么替换这些参数的,照搬就是了。

2、APP_DataRx 是给用户提供的数据接口,避免用户和底层打交道。
比如发送数据,用户只管把待发的有效数据放进这个接口,同时修改指针,
底层会定期查看指针,发现有变化,就会自行启动发送过程。

3、USB 的时序性很强,主从之间联系很频繁。
想想看,你插上或拔下U盘,PC立刻会发觉。
具体到STM32,这些联系需要软件参与。用仿真器单步走,通信被停止了,而连续运行则没问题。
所以,仿真调试比较麻烦,需要技巧,需要经常复位。


使用特权

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

本版积分规则

3

主题

10

帖子

0

粉丝