关于CH32X033的USB接口的GPIO模式配置

我在X035的EVT中, 发现初始化配置USB时, USB的GPIO有两种配置模式:

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_16 | GPIO_Pin_17;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init( GPIOC, &GPIO_InitStructure );

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_16;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init( GPIOC, &GPIO_InitStructure );

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_17;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init( GPIOC, &GPIO_InitStructure );


区别是USB DM这个管脚, 一种是配置成上拉输入, 一种是浮空输入.

请问这两种配置模式有什么使用上的区别吗?

您好,关于USB的GPIO配置,我们EVT一个例程就一种配置,如下图。并没有你贴的第一种配置,正常做设备按照下图配置即可。后续若有问题,可邮箱(lzs@wch.cn)沟通。下面链接为最新EVT下载链接,你可以下载看一下

https://www.wch.cn/downloads/CH32X035EVT_ZIP.html 

image.png


已删除


不对, 没搞错, 确实EVT里有俩种写法:

第一种是在: EXAM\IAP\USB_UART\CH32X035_IAP\User\ch32x035_usbfs_device.c

第二种是在: EXAM\USB\USBFS\DEVICE\CompatibilityHID\User\ch32x035_usbfs_device.c


EVT里USB相关的demo, 绝大部分都是第二种, 只有IAP的demo是第一种.


您好,可以看一下IAP例程中关于USB完整的初始化配置,如下图,在GPIO初始化完成后,会开启USB复用,配置DP引脚上拉,禁止DM引脚上拉,整体上和直接配置PC17上拉,PC16浮空是一样的。已向相关同事说明,后续应该会改成统一一整写法,直接配置PC17上拉,PC16浮空。

image.png


好的


只有登录才能回复,可以选择微信账号登录