USB的IO口需不需要复用,如果要复用,怎么设置呢?没发现手册上有讲啊,而且那2个口,PA11,PA12默认是IO口啊!怎么设置呢
答:在此部分代码用于实现我们在硬件设计部分提到的功能,USB的配置通过三个函数完成:USB_Interrupts_Config()、Set_USBClock()和USB_Init(),第一个函数用于设置USB唤醒中断和USB低优先级数据处理中断,Set_USBClock函数用于 配置USB时钟,也就是从72M的主频得到48M的USB时钟(1.5分频)。最后USB_Init()函数用于初始化USB,最主要的就是调用了Joystick_init函数,开启了USB部分的电源等。这里需要特别说明的是,USB配置并没有对PA11和PA12这两个IO口进行设置,是因为,一旦开启了USB电源(USB_CNTR的PDWN位清零)PA11和PA12将不再作为其他功能使用,仅供USB使用,所以在开启了USB电源之后不论您怎么配置这两个IO口,都是无效的。要在此获取这两个IO口的配置权,则需要关闭USB电源,也就是置位USB_CNTR的PDWN位。
花了一个多月,终于学会了USB,呵呵,感觉还是蛮头疼的,希望新手能够耐心的看,时间长了,自然就懂了
答:根据地址和端点来接收请求,接收后一般存放在缓冲区,STM32芯片就有一个USB和CAN共享的专用缓冲区。即缓冲区描述表在USB_core.c下的u8 Setup0_Process(void)函数里面可以看到,刚开始的时候,看到了也不懂,现在懂了。(具体说明详见附件内容。)