首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

STM32——USB详细使用说明

STM32——USB详细使用说明

说明:使用的是STM32F103ZET6
硬件原理图

在开始枚举设备的一些初始化
void bsp_USBInit(void)
{

   GPIO_InitTypeDef  GPIO_InitStructure;
   
   RCC_APB2PeriphClockCmd(RCC_USB_PULL_UP, ENABLE);
   
   USB_CABLE_DISABLE();

   
   GPIO_InitStructure.GPIO_Pin = PIN_USB_PULL_UP;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
   GPIO_Init(GPIOB, &GPIO_InitStructure);
   

   {
     NVIC_InitTypeDef NVIC_InitStructure;
     
     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
     NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
     NVIC_Init(&NVIC_InitStructure);
    }
   

   RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5);
  
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE);

  
   USB_Init();

}
现在开始分析真正的初始化
第一步:初始化,总线复位及向默认地址 0发送 GET_DESCRIPTOR指令包,请求设备描述
继承事业,薪火相传
返回列表