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

[复制链接]
3669|13
 楼主 | 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的库函数?
谢谢
| 2014-11-19 17:37 | 显示全部楼层
驱动装了没?

使用特权

评论回复
 楼主 | 2014-11-19 23:50 | 显示全部楼层
"无法辨识装置" 装不了驱动喔

使用特权

评论回复
| 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;

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

结果

结果

使用特权

评论回复
| 2018-10-24 10:19 | 显示全部楼层
我也遇到这个问题,楼主有解决这个问题吗,怎么解决的啊。我在stm32上运行正常,但是移植到gd上就是无法识别设备,硬件是正常的。求解决方法啊

使用特权

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

使用特权

评论回复
| 2018-11-10 19:07 | 显示全部楼层
这两产品间的移植是非常好整的哈

使用特权

评论回复
| 2018-11-11 13:09 | 显示全部楼层
这个有很复杂的么?直接移植的就行啊

使用特权

评论回复
| 2018-11-11 22:24 | 显示全部楼层
这个有相关的驱动的吧

使用特权

评论回复
| 2018-11-25 10:40 | 显示全部楼层
这几个程序的分享的我先研究下的

使用特权

评论回复
| 2018-11-30 20:51 | 显示全部楼层
这个主要看移植的

使用特权

评论回复
| 2019-7-5 14:21 | 显示全部楼层
heliosN1 发表于 2018-11-3 15:46
楼主,你这个解决了吗?
我最近也在用gd,做usb虚拟串口。
移植st的demo。

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

使用特权

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

使用特权

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

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表