它的 功能是配置和使能 USB 时钟。 (4)USB_Init(void) 这个是 main 函数中调用的第四个函数,它也位于 usb_init.c 文件中。它初始 化了三个全局指针,指向 DEVICE_INFO、USER_STANDARD_REQUESTS 和 DEVICE_PROP 结构体。 后面两个是函数指针结构体,里面都是 USB 请求实现、功能实现的函数指针。 void USB_In...
我们只处理这个:voidVirtual_Com_Port_Reset(void),这个函数在usb_prop.c这个文件中。它的目的是恢复上电时的缺省设置。这个我们就不去深究了。因为好象也没有必要。 首先将全局变量pInformation(它定义在初始化中usb_init.c)中的配置值置为0表示设备还没配置过。(这个变量猜想应该在枚举之类的地方用于判断是否已...
#define USB_COM_TX_BUF_SIZE (1024 + 256) static QUEUE8_t m_QueueUsbComRx = {0}; static QUEUE8_t m_QueueUsbComTx = {0}; static uint8_t m_UsbComRxBuf[USB_COM_RX_BUF_SIZE] = {0}; static uint8_t m_UsbComTxBuf[USB_COM_TX_BUF_SIZE] = {0}; static void IntToUnicode (ui...
1,stm32_it.c 更名为usb_it.c删除无用代码,只保留usb中断函数,和唤醒函数。代码如下: 代码1 /*Includes ---*/#include"hw_config.h"#include"usb_lib.h"#include"usb_istr.h"/*** * Function Name : USB_IRQHandler * Description : This function handles USB Low Priority interrupts * requests. ...
选择Clock Configuration,USB 时钟配置为 48MHz,且来源最好是外部晶振分频得到。 3.4 USB Device USB有主机(Host)和设备(Device)之分。一般电脑的USB接口为主机接口,而键盘、鼠标、U盘等则为设备。 部分型号的STM32芯片有1~2个USB接口。像STM32F103系列的有一个USB Device接口,STM32F407系列的有2个USB接口,既可...
从代码中可以看到,首先是注册了一个Device_Info结构体给USB,这个结构体保存着USB的各项信息,接着设置控制状态为IN_DATA,USB初始化只有在这个状态才能接受主机发送过来,接下去注册函数常用的一些函数及标准请求,最后执行注册过的初始化函数。 一看就知道跟中断相关。在该文件中定义了两个函数,分别为低优先级的端点正确...
Device_Info.Current_Configuration=0;//选择当前配置为0pInformation->Current_Feature = DinkUsbConfigDescriptor[7];//获取配置描述符中当前设备属性pInformation->Current_Interface =0;//设置当前设备接口SetBTABLE(BTABLE_ADDRESS);//设置缓冲区地址SetEPType(ENDP0, EP_CONTROL);//控制端点SetEPTxStatus(ENDP0...
现在具体的分析103的usb的执行过程 按顺序向下执行 ***(1)*** DEVICE_INFO *pInformation; DEVICE_PROP *pProperty; DEVICE_PROP Device_Property = { Joystick_init, Joystick_Reset, Joystick_Status_In, Joystick_Status_Out, Joystick_Data_Setup, Joystick_NoData...
零死角玩转stm32-高级篇6、UsbDevice(模拟U盘)
用STM32F207VC 开发 usb设备 BULK传输 ,使用了两个端点 IN 端点 0X82 和 OUT端点 0X03 ,端点的...