打印

如何移植ST的USB CDC范例到GD32?

[复制链接]
6249|70
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ul4|  楼主 | 2014-11-16 18:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如题
使用 GD32F103RBT6
库版本 STM32_USB-FS-Device_Lib_V4.0.0
基于ST例程Virtual_COM_Port尝试移植到GD32
但是电脑读到"无法辨识装置"

我有修改过启动时间#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)
以及USB_Disconnect接脚以对应我的板子
其余程式码原封不动

1. 我试着将板子换上STM32
程序能正常工作
证明我的板子没有硬件错误

2.我试着烧录过GD例程26 "TouchUSBMouse"
电脑能读到USB HID装置
证明我的GD32芯片没坏掉

请问若要使用GD的USB
是否要进一步修改ST的库函数?
谢谢
沙发
mb19891028| | 2014-11-19 17:37 | 只看该作者
驱动装了没?

使用特权

评论回复
板凳
ul4|  楼主 | 2014-11-19 23:50 | 只看该作者
"无法辨识装置" 装不了驱动喔

使用特权

评论回复
地板
mb19891028| | 2014-11-20 10:30 | 只看该作者
使用 GD32F103VCT6
库版本 STM32_USB-FS-Device_Lib_V4.0.0

修改#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)

修改
void USB_Cable_Config (FunctionalState NewState)
{
#if defined(STM32L1XX_MD) || defined (STM32L1XX_HD)|| (STM32L1XX_MD_PLUS)
  if (NewState != DISABLE)
  {
    STM32L15_USB_CONNECT;
  }
  else
  {
    STM32L15_USB_DISCONNECT;
  }  
  
#else /* USE_STM3210B_EVAL or USE_STM3210E_EVAL */
  if (NewState != DISABLE)
  {
    //GPIO_ResetBits(USB_DISCONNECT, USB_DISCONNECT_PIN);
        GPIO_SetBits(GPIOD, GPIO_Pin_13);
  }
  else
  {
    //GPIO_SetBits(USB_DISCONNECT, USB_DISCONNECT_PIN);
        GPIO_ResetBits(GPIOD, GPIO_Pin_13);
  }
#endif /* STM32L1XX_MD */
}

修改
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

其他没改,安装驱动后,可以成功运行

捕获.PNG (3.63 KB )

结果

结果

使用特权

评论回复
5
风语者1991| | 2018-10-24 10:19 | 只看该作者
我也遇到这个问题,楼主有解决这个问题吗,怎么解决的啊。我在stm32上运行正常,但是移植到gd上就是无法识别设备,硬件是正常的。求解决方法啊

使用特权

评论回复
6
heliosN1| | 2018-11-3 15:46 | 只看该作者
楼主,你这个解决了吗?
我最近也在用gd,做usb虚拟串口。
移植st的demo。
在st上可以正常运行。
该改的也改了,移植到gd上就不行了,枚举都不成功。

使用特权

评论回复
7
comeon201208| | 2018-11-10 19:07 | 只看该作者
这两产品间的移植是非常好整的哈

使用特权

评论回复
8
zhangbo1985| | 2018-11-11 13:09 | 只看该作者
这个有很复杂的么?直接移植的就行啊

使用特权

评论回复
9
chuntian2016| | 2018-11-11 22:24 | 只看该作者
这个有相关的驱动的吧

使用特权

评论回复
10
vibra2016| | 2018-11-25 10:40 | 只看该作者
这几个程序的分享的我先研究下的

使用特权

评论回复
11
shenmu2012| | 2018-11-30 20:51 | 只看该作者
这个主要看移植的

使用特权

评论回复
12
搞个大新闻| | 2019-7-5 14:21 | 只看该作者
heliosN1 发表于 2018-11-3 15:46
楼主,你这个解决了吗?
我最近也在用gd,做usb虚拟串口。
移植st的demo。

你这个解决了吗?我也是st的usb程序移植到gd3上,usb分频什么的都改了,就是不行,连接电脑显示未知 USB 设备(设定地址失败)

使用特权

评论回复
13
dxfshsh| | 2019-7-19 21:30 | 只看该作者
在同一台PC机上,不能同时安装两个ARM虚拟串口驱动,其中只能有一个正常工作。另一个不能正常工作。

使用特权

评论回复
14
lvben5d| | 2019-7-20 08:15 | 只看该作者
楼上几位  首先 GD32F103跟STM32F103的寄存器 是基本一致的,但是为了避免版权纠纷,库函数的命名肯定不会完全一样但也是风格相似,因此,如果用GD32F103代替原来的,为什么不好好的看下库函数,然后由此建立GD32F103的工程,替换掉库函数不同的地方。最后柳暗花明呢?   这个东西其实不叫移植, 应该叫REPLACE更加贴切!  我用的是E103跟F系列USB很不同,但之前简单看过GD32F103的USB 跟32的还是比较相似的结构哦。

使用特权

评论回复
15
gd32f103stm32| | 2023-10-26 10:49 | 只看该作者
风语者1991 发表于 2018-10-24 10:19
我也遇到这个问题,楼主有解决这个问题吗,怎么解决的啊。我在stm32上运行正常,但是移植到gd上就是无法识 ...

兄弟问题解决了么,告一下,我也是st的usb想直接用在gd上,可是不行

使用特权

评论回复
16
gd32f103stm32| | 2023-10-26 10:50 | 只看该作者
heliosN1 发表于 2018-11-3 15:46
楼主,你这个解决了吗?
我最近也在用gd,做usb虚拟串口。
移植st的demo。

解决了么?

使用特权

评论回复
17
SantaBunny| | 2023-10-31 22:13 | 只看该作者
直接移植的就可以了啊

使用特权

评论回复
18
modesty3jonah| | 2023-11-11 13:33 | 只看该作者
打开ST的USB CDC示例代码,并对其进行适当的修改和调整,以适应GD32的开发环境和硬件结构。例如,需要修改设备ID、波特率等参数,并添加相应的中断处理函数等。

使用特权

评论回复
19
maudlu| | 2023-11-11 13:54 | 只看该作者
可以进行实际的USB CDC设备开发和应用。

使用特权

评论回复
20
jkl21| | 2023-11-11 14:26 | 只看该作者
了解ST的USB CDC范例代码的结构和功能,分析其中的关键部分,以便在GD32上实现相似的功能。

使用特权

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

本版积分规则

ul4

1

主题

2

帖子

0

粉丝