OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3617|回复: 8

STM32F103 VCP 求助

[复制链接]

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-7-6
在线时间
31 小时
发表于 2016-8-31 21:11:13 | 显示全部楼层 |阅读模式
1金钱
我最近想实现的是stm32通过usb虚拟的串口直接和PC的串口调助手通信,也就是说不用USART转接收发。按说只要在stm32中不使用USART的功能,直接在收到PC下发的数据时,使用USB的端点再回传想返回的信息就行了。但是却发现一个问题,如果只是从PC的串口助手下发的,第一次的数据可以收到,再发的就没反应了。如果每收到一次后紧跟着用USB向PC发一次数据的话,就可以继续收到上位机的数据。但这样就无法实现仅仅通过USB就可以和PC的串口助手任意通信了。
这样做主要是为了使用没有串口的PC就可以通过串口助手来方便的控制stm32,。不知道是不是要改驱动?, 還是程序哪裡有問題啊? 程序是使用 標準庫函式 改的

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2016-8-31 21:30:23 | 显示全部楼层

我读了三遍,仍然似懂非懂。


回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-7-6
在线时间
31 小时
 楼主| 发表于 2016-9-1 07:25:34 | 显示全部楼层
void EP3_OUT_Callback(void)  
{
        usb_len = USB_SIL_Read(EP3_OUT,(u8*) usb_rxbuffer);       
        SetEPRxValid(ENDP3);
}
我的問題是, 如果我收到的是上位機(PC)讀取資料的命令, 我的程式回了資料, 那命令可以繼續由 PC 傳過來, 如果收到的是寫入命令 (程式不須回應上位機資料),
那我只能收到一次命令, 然後整個 USB 就停住了, 再也無法收命令了,除非把串口調試助手的 port 關閉再打開,又可以傳一筆寫入命令, 是甚麼問題啊?...懇請高手幫忙
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-7-6
在线时间
31 小时
 楼主| 发表于 2016-9-1 21:33:58 | 显示全部楼层
沒有高手可以幫忙解答嗎?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-9-3 21:06:28 | 显示全部楼层
帮顶
回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-7-6
在线时间
31 小时
 楼主| 发表于 2016-9-6 09:27:45 | 显示全部楼层
我在別的論壇有看到幾年前的舊文, 有人碰到相同問題, 不知有人可以幫忙解答嗎?
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2016-9-6 09:50:05 | 显示全部楼层

这需要对USB过程、协议有了解,
可惜我也是直接用例程。

原来例程有这问题吗?


回复

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2014-7-6
在线时间
31 小时
 楼主| 发表于 2016-9-7 11:18:43 | 显示全部楼层
原来例程是 usb 轉串口, 即收即發, 我的應用是有時是不需發送資料到上位機的
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11537
金钱
11537
注册时间
2014-4-1
在线时间
1314 小时
发表于 2016-9-7 11:29:35 | 显示全部楼层
chfanjiang 发表于 2016-9-7 11:18
原来例程是 usb 轉串口, 即收即發, 我的應用是有時是不需發送資料到上位機的


看来,原来的例程没有这问题,
那就是你自己的问题了,哪里修改错。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 18:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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