OpenEdv-开源电子网

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

STM32F103的USB收发问题

[复制链接]

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-1-27
在线时间
15 小时
发表于 2015-1-29 11:22:19 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]int main(void) { //u8 t=0; Set_System(); delay_init(72); Set_USBClock(); USB_Interrupts_Config(); USB_Init(); KEY_Init(); //SetEPRxValid(ENDP1); while(1) { //RX_DataLen = GetEPRxCount(ENDP1); PMAToUserBufferCopy(Receive_Buffer, ENDP1_RXADDR,22); //把缓冲区的数据拷贝到Receive_Buffer SetEPRxValid(ENDP1); if(KEY0==0) { delay_ms(10);//去抖动 if(KEY0==0) { USB_SendString(Receive_Buffer); for(i=0;i<256;i++){Receive_Buffer=0; } } while(!KEY0); //等待松开。 delay_ms(10); //再次去抖动。 while(!KEY0); } } } void USB_SendString(u8 *str) // { u8 ii=0; while(*str) { Transi_Buffer[ii++]=*(str++); if (ii ==256) break; } UserToPMABufferCopy(Transi_Buffer, ENDP2_TXADDR, 256); _SetEPTxStatus(ENDP2, EP_TX_VALID); }[/mw_shl_code]


用USB调试助手发一个数据“123”,单片机能收到,在通过按键触发  将数据“123”发到上位机都可以实现,但第二次再发别的数据的时候,比如再通过USB助手发“456”,再按按键,上位机接收到的依然是“123”.请问高手们这是怎么回事?

看着容易,学着不易,且学且努力!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2015-1-29 11:42:13 | 显示全部楼层
应该检查下IN端点发的是否正确。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
113
金钱
113
注册时间
2015-1-27
在线时间
15 小时
 楼主| 发表于 2015-1-29 11:47:02 | 显示全部楼层
回复【2楼】styleno1:
---------------------------------
看着容易,学着不易,且学且努力!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-26 10:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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