问答

汇集网友智慧,解决技术难题

21ic问答首页 - gd32f105中的usb例程找不到usb管脚配置

ST 管脚配置 gd32f105 GD32 USB

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

wfclhu12024-06-30
近期使用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);
    }
}

回答 +关注 9
1499人浏览 5人回答问题 分享 举报
5 个回答
  • 上边也没有关于usb的配置呀
  • 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;
    }

  • 那奇怪了,难道USB不经过配置,就能正常工作,各位大神们
  • usb_vbus_config() 函数:这个函数用于配置用于切换 VBUS 电源和充电泵 I/O 的 GPIO 引脚。虽然这个函数名字中包含 USB VBUS,但并不涉及 D+ 和 D- 的配置。
  • usb_rcu_config() 函数:这个函数可能用于配置 USB 的相关时钟源。在这个函数中可能会配置 USB 的时钟,但不一定包含 GPIO 管脚的配置。

您需要登录后才可以回复 登录 | 注册