STM32-USB
+ -

USB全速STM32F407管脚初始化

2022-06-14 1326 0

STM32F407ZG的管脚PA11和PA12是一个复用功能引脚。其功能如下:

管脚 USB
PA11 OTG_FS_DM(D-)
PA12 OTG_FS_DP(D+)

由于其内部D+有一个可配置上拉电阻,所以其硬件原图如下:
USB引脚原理图

故只需要分别将连接器P11的46管脚和35管脚短接即可实现USB从硬件功能。

而管脚的初始化代码如下:

void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev)
{
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
  RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_OTG_FS, ENABLE);


  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; 
  GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_PinAFConfig(GPIOA,GPIO_PinSource11,GPIO_AF_OTG_FS);
    GPIO_PinAFConfig(GPIOA,GPIO_PinSource12,GPIO_AF_OTG_FS);)
}
  • 先使能总线时钟,分别为IO管脚和USB的。
  • 初始化PA11和PA12的管脚,推挽输出,复用功能,无上拉。
  • 分别PA11和PA12的管脚功能,为GPIO_AF_OTG_FS
HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

STM32F103 UVC设备源代码(模拟相机)
1.STM32F103 UVC设备源代码(模拟相机)https://pan.baidu.com/s/1treoRRxQndFoE0K8oRFndg 提取码:0jt3其它资料:1.各种工具1.USB协议分析工具https://pan.baidu.com/s/1DeXqRWsM7BOYTdrmIE8KB......
STM32 USB Audio 开发板
一、背景我个人从事音频行业有好几年的时间。后面慢慢的做起了声卡,也就是USB Audio。自己也走了不少的弯路。之前一起是拿开发板配套Demo去学习。但Demo离商用还是有点距离。要么就是不稳定要么就是功能不全面。我前面也写了篇文章关于stm32实现USB Audio的过程。因为是公司的代码。所以没......
STM32发送数据与接收到的数据长度不一致问题
群里一位同发提了一个问题,自己弄了一个USB HID游戏控制器,一次发送了7字节,不过通过BUSHOUND抓到只有5字节。还贴上了图。各位,请问一下我做的一个USBHID游戏控制器,一次发送的是7位数据,为什么BusHound上只接收到五位?由于没有显示长度,所以刚开始我还以为是BUSHOU......
USB全速STM32F407管脚初始化
STM32F407ZG的管脚PA11和PA12是一个复用功能引脚。其功能如下:管脚USBPA11OTG_FS_DM(D-)PA12OTG_FS_DP(D+)由于其内部D+有一个可配置上拉电阻,所以其硬件原图如下:故只需要分别将连接器P11的46管脚和35管脚短......
STM32F407 USB设备模块数据结构及初始化入口函数USBD_Init
本人以STM32F404自带的读卡器SLAVE代码为来解说。STM32F404支持OTG功能,其自带一个全速的USB功能。其USB初始化其实就是写相应的函数代码,这些函数代码却是通一个个的结构体整合起来成回调函数,这些函数是由我们自己写的。而STM32的库函数根据这些构体中的函数指针负责回调我们自......
STM32F407入口函数USBD_Init详解
从前面可知,USBD_Init是USB设备的初始化函数,这里USB后面的D是指DEVICE的意思。USBD_Init全代码为:void USBD_Init(USB_OTG_CORE_HANDLE *pdev, USB_OTG_CORE_ID_TypeDef core......
STM32F407的USB用户回调函数USBD_Usr_cb_TypeDef
前面了解过USBD_Usr_cb_TypeDef结构体中是用户的回调函数。用户的回调函数位于usbd_user.c文件中。typedef struct _USBD_USR_PROP{ void (*Init)(void); void (*DeviceReset)(uint8_t s......
STM32F407的USB获取描述符请求回调函数USBD_DEVICE
STM32F407的USB获取描述符请求回调函数使用结构体USBD_DEVICE来整合。typedef struct _Device_TypeDef{ uint8_t *(*GetDeviceDescriptor)( uint8_t speed , uint16_t *length); ......
STM32F407的USB类请求回调函数USBD_Class_cb_TypeDef
前面介绍了获取描述会和USB设备状态的回调函数,这里界绍USB在实际使用过程中的USB请求通讯。这里还是以STM32F407的U盘为示例来说明。STM32F407的USB类请求使用结构体USBD_Class_cb_TypeDef来整合回调函数。typedef struct _Device_cb......
嵌入式STM32常用USB术语
术语解释AHBAMBA High-performance BusAMBAAdvanced Microcontroller Bus ArchitectureCDCCommunication Device ClassDCDDevice Core Driver......
STM32 USB Device Core函数总结
包含三个文件:usbd_core.c :初始化及设备状态请求回调usbd_ioreq.c: API函数封装usbd_req.c :USB标准请求(设备、接口、端点),是usbd_core中USBD_SetupStage函数的详细化udbd_core.cUSB设备库的初始化函数以及相关的USB请......
STM32 USB_OTG_Driver函数总结
USB_OTG_Driver目录下的文件有:usb_bsp_template.c :与硬件初始化相关的空模板usb_core.c :比较底层USB函数usb_dcd.c:USB作为设备时需要的API函数usb_dcd_int.c :作为设备时的中断处理usb_hcd.c :USB作为主机时的AP......
STM32 USB-HID设备示例及工程结构
STM32 USB-HID设备工程结构对于HID示例工程,其代码数据结构如下:APPapp.c :main函数stm32fxxx_it.c :STM32中断usb_bsp.c :平台硬件相关的。主要是USB_OTG_BSP_Init和USB_OTG_BSP_EnableInterruptus......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!