硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3533|回复: 3
收起左侧

[STM32F7] F7上移植OTG_HS没有反应

[复制链接]

27

主题

94

回帖

175

积分

初级会员

积分
175
发表于 2018-4-9 11:40:07 | 显示全部楼层 |阅读模式
本帖最后由 Mark 于 2018-4-9 11:43 编辑

OTG_HS的移植在原子F7的  实验56 USB读卡器(Slave)  的基础上做的修改,因为原子的是没有外接PHY芯片的,我自己的开发板上现在是有接一个USB3300的芯片
这个是USB3300芯片。



我现在这端的接口都是直接接在F7上的。宏定义在工程中添加了USE_ULPI_PHY,USE_USB_OTG_HS这两个。在usb.bsp.c中做了相关初始化如下

  1. //USB OTG 底层IO初始化
  2. //pdev:USB OTG内核结构体指针
  3. void USB_OTG_BSP_Init(USB_OTG_CORE_HANDLE *pdev)
  4. {
  5.      GPIO_InitTypeDef  GPIO_InitStruct;
  6.     __HAL_RCC_GPIOA_CLK_ENABLE();                   //使能GPIOA时钟
  7.         __HAL_RCC_GPIOB_CLK_ENABLE();
  8.         __HAL_RCC_GPIOC_CLK_ENABLE();
  9.         __HAL_RCC_GPIOH_CLK_ENABLE();
  10.         __HAL_RCC_GPIOI_CLK_ENABLE();
  11.     __HAL_RCC_USB_OTG_FS_CLK_ENABLE();              //使能OTG FS时钟
  12.        
  13.        
  14.         //D0
  15.     GPIO_InitStruct.Pin=GPIO_PIN_3;    //PA3
  16.     GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;           //复用
  17.     GPIO_InitStruct.Pull=GPIO_NOPULL;               //无上下拉
  18.     GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;          //高速
  19.     GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS;     //复用为OTG FS
  20.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);         //初始化
  21.        
  22.        
  23.         //D1-D7   //PB0,1,5,10,11,12,13
  24.     GPIO_InitStruct.Pin=GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_5|GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12|GPIO_PIN_13;   
  25.     GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;           //复用
  26.     GPIO_InitStruct.Pull=GPIO_NOPULL;               //无上下拉
  27.     GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;          //高速
  28.     GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS;     //复用为OTG FS
  29.     HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);         //初始化
  30.        
  31.        
  32.         //CLK
  33.     GPIO_InitStruct.Pin=GPIO_PIN_5;    //PA5
  34.     GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;           //复用
  35.    // GPIO_InitStruct.Pull=GPIO_NOPULL;               //无上下拉
  36.     GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;          //高速
  37.     GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS;     //复用为OTG FS
  38.     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);         //初始化
  39.        
  40.     //STP
  41.     GPIO_InitStruct.Pin=GPIO_PIN_0;    //PC0
  42.     GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;           //复用
  43.    // GPIO_InitStruct.Pull=GPIO_NOPULL;               //无上下拉
  44.     GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;          //高速
  45.     GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS;     //复用为OTG FS
  46.     HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);         //初始化
  47.        
  48.         //NXT
  49.     GPIO_InitStruct.Pin=GPIO_PIN_4;    //PH4
  50.     GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;           //复用
  51.    // GPIO_InitStruct.Pull=GPIO_NOPULL;               //无上下拉
  52.     GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;          //高速
  53.     GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS;     //复用为OTG FS
  54.     HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);         //初始化
  55.        
  56.          //DIR
  57.     GPIO_InitStruct.Pin=GPIO_PIN_11;    //PI11
  58.     GPIO_InitStruct.Mode=GPIO_MODE_AF_PP;           //复用
  59.   // GPIO_InitStruct.Pull=GPIO_NOPULL;               //无上下拉
  60.     GPIO_InitStruct.Speed=GPIO_SPEED_HIGH;          //高速
  61.     GPIO_InitStruct.Alternate=GPIO_AF10_OTG_HS;     //复用为OTG FS
  62.     HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);         //初始化

  63. }

  64. //USB OTG 中断设置,开启USB HS中断
  65. //pdev:USB OTG内核结构体指针
  66. void USB_OTG_BSP_EnableInterrupt(USB_OTG_CORE_HANDLE *pdev)
  67. {         
  68.     HAL_NVIC_SetPriority(OTG_HS_IRQn,0,0);          //抢占优先级0,子优先级3
  69.     HAL_NVIC_EnableIRQ(OTG_HS_IRQn);                //使能OTG USB FS中断
  70. }

  71. //USB OTG 中断设置,开启USB FS中断
  72. //pdev:USB OTG内核结构体指针
  73. void USB_OTG_BSP_DisableInterrupt(void)
  74. {
  75. }
  76. //USB OTG 端口供电设置(本例程未用到)
  77. //pdev:USB OTG内核结构体指针
  78. //state:0,断电;1,上电
  79. void USB_OTG_BSP_DriveVBUS(USB_OTG_CORE_HANDLE *pdev, uint8_t state)
  80. {
  81. }
  82. //USB_OTG 端口供电IO配置(本例程未用到)
  83. //pdev:USB OTG内核结构体指针
  84. void  USB_OTG_BSP_ConfigVBUS(USB_OTG_CORE_HANDLE *pdev)
  85. {
  86. }
  87. //USB_OTG us级延时函数
  88. //本例程采用SYSTEM文件夹的delay.c里面的delay_us函数实现
  89. //官方例程采用的是定时器2来实现的.
  90. //usec:要延时的us数.
  91. void USB_OTG_BSP_uDelay (const uint32_t usec)
  92. {
  93.            delay_us(usec);
  94. }
  95. //USB_OTG ms级延时函数
  96. //本例程采用SYSTEM文件夹的delay.c里面的delay_ms函数实现
  97. //官方例程采用的是定时器2来实现的.
  98. //msec:要延时的ms数.
  99. void USB_OTG_BSP_mDelay (const uint32_t msec)
  100. {  
  101.         delay_ms(msec);
  102. }
复制代码




查询了下相关资料不知道还有其他什么需要配置的部分了。来个大佬指点下!


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2018-4-9 11:42:44 | 显示全部楼层
直接下载官方的综合评估板子的例子搞,你的应该应该按照官方硬件设计那个搞,不要自己倒腾,然后直接跑对应的例子,无痛移植。
回复

使用道具 举报

27

主题

94

回帖

175

积分

初级会员

积分
175
 楼主| 发表于 2018-4-9 11:49:48 | 显示全部楼层
eric2013 发表于 2018-4-9 11:42
直接下载官方的综合评估板子的例子搞,你的应该应该按照官方硬件设计那个搞,不要自己倒腾,然后直接跑对应 ...

硬汉哥,你说的是这3个么USB_Device_Examples    USB_Host_Device_Examples   USB_Host_Examples   
确实这里面的例程很多,但是是F4的列子,我在网上查了写资料说F7的有的东西不能和F4的兼容.

  硬汉大佬 能给个F7的OTG的链接吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2018-4-9 12:26:49 | 显示全部楼层
Mark 发表于 2018-4-9 11:49
硬汉哥,你说的是这3个么USB_Device_Examples    USB_Host_Device_Examples   USB_Host_Examples   
确 ...

这不都是么:
QQ截图20180409122443.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 07:41 , Processed in 0.222203 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表