打印

gd32f105中的usb例程找不到usb管脚配置

[复制链接]
306|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wfclhu1|  楼主 | 2024-6-30 23:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
近期使用gd32f105做USB升级程序,拟使用官方usb的例程,但怎么也找不到官方例程的中的usb管脚配置,哪位大神给看一下。以下是官方例程中的主函数
extern usb_core_driver usbh_core;

usbh_host usb_host;

/*!
    \brief      main routine
    \param[in]  none
    \param[out] none
    \retval     none
*/
int main(void)
{
    usb_rcu_config();

    usb_timer_init();

    /* configure GPIO pin used for switching VBUS power and charge pump I/O */
    usb_vbus_config ();

    usbh_class_register (&usb_host, &usbh_msc);

    /* initialize host library */
    usbh_init (&usb_host, &usr_cb);

    /* enable interrupts */
    usb_intr_config ();

    while (1) {
        /* host task handler */
        usbh_core_task (&usb_host);
    }
}

使用特权

评论回复
沙发
大鹏2365| | 2024-6-30 23:21 | 只看该作者
usb_rcu_config() 函数:这个函数可能用于配置 USB 的相关时钟源。在这个函数中可能会配置 USB 的时钟,但不一定包含 GPIO 管脚的配置。

使用特权

评论回复
板凳
大鹏2365| | 2024-6-30 23:21 | 只看该作者
usb_vbus_config() 函数:这个函数用于配置用于切换 VBUS 电源和充电泵 I/O 的 GPIO 引脚。虽然这个函数名字中包含 USB VBUS,但并不涉及 D+ 和 D- 的配置。

使用特权

评论回复
地板
wfclhu1|  楼主 | 2024-7-1 09:13 | 只看该作者
那奇怪了,难道USB不经过配置,就能正常工作,各位大神们

使用特权

评论回复
5
wfclhu1|  楼主 | 2024-7-1 09:17 | 只看该作者
usbh_status_enum host_state_polling_fun (usb_core_handle_struct *pudev,
                                         usbh_host_struct *puhost,
                                         void *pustate)
{
    usbh_state_handle_struct *p_state = (usbh_state_handle_struct *)pustate;

    scd_begin(p_state, HOST_FSM_ID);

    if (-1 == p_state->usbh_current_state_stack_top) {
        uint8_t cur_state = p_state->usbh_current_state;

        if ((0U == hcd_is_device_connected(pudev)) && (HOST_IDLE != cur_state)) {
            if (HOST_DEV_DETACHED != cur_state) {
                p_state->usbh_current_state = HOST_DEV_DETACHED;
                cur_state = HOST_DEV_DETACHED;
            }
        }

        host_state_handle[cur_state](pudev, puhost, p_state);
    } else {
        uint8_t stack0_state = p_state->stack[0].state;

        if ((0U == hcd_is_device_connected(pudev)) && (HOST_IDLE != stack0_state)) {
            if (HOST_DEV_DETACHED != stack0_state) {
                p_state->stack[0].state = HOST_DEV_DETACHED;
                stack0_state = HOST_DEV_DETACHED;
                p_state->usbh_current_state = HOST_DEV_DETACHED;
            }
        }

        host_state_handle[stack0_state](pudev, puhost, p_state);
    }

    return USBH_OK;
}

使用特权

评论回复
6
wfclhu1|  楼主 | 2024-7-1 09:17 | 只看该作者
上边也没有关于usb的配置呀

使用特权

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

本版积分规则

7

主题

14

帖子

0

粉丝