野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10649|回复: 10

STM32F429 USB例程少个usb_bsp.h文件

[复制链接]
发表于 2016-5-24 21:53:46 | 显示全部楼层 |阅读模式
在论坛里下载的USB读写程序少了一个usb_bsp.h文件,火哥看到了帮忙提供一下,谢谢
回复

使用道具 举报

发表于 2016-5-25 09:05:41 | 显示全部楼层
这个程序还有点问题,我们在改
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-25 09:10:20 | 显示全部楼层
flyleaf 发表于 2016-5-25 09:05
这个程序还有点问题,我们在改

好的,改好了通知一声哈!谢谢
回复 支持 反对

使用道具 举报

发表于 2016-5-26 08:32:57 | 显示全部楼层
冷面寒枪 发表于 2016-5-25 09:10
好的,改好了通知一声哈!谢谢

你也可以一起研究下,说不准你比我们还快
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-26 17:18:10 | 显示全部楼层
fire 发表于 2016-5-26 08:32
你也可以一起研究下,说不准你比我们还快

火哥,你终于露面了,不容易啊,我现在刚开始搞USB,菜鸟一个呢,多像你们学习,之前买过你们的STM32的开发板,感觉很不错的。一起加油
回复 支持 反对

使用道具 举报

发表于 2016-5-29 13:46:18 | 显示全部楼层
这个我已经解决了,之前在QQ2群里,发过错误的地方.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-6-1 10:50:33 | 显示全部楼层
wgc69 发表于 2016-5-29 13:46
这个我已经解决了,之前在QQ2群里,发过错误的地方.

老兄,怎么解决的?方便加下QQ吗?284096447,或者发我邮箱也行,284096447@qq.com
回复 支持 反对

使用道具 举报

发表于 2016-6-11 13:38:39 | 显示全部楼层

  1. <p>/**
  2.   ******************************************************************************
  3.   * @file    usb_bsp.h
  4.   * @author  MCD Application Team
  5.   * @version V2.1.0
  6.   * @date    19-March-2012
  7.   * @brief   Specific api's relative to the used hardware platform
  8.   ******************************************************************************
  9.   * @attention
  10.   *
  11.   * <h2><center>&copy; COPYRIGHT 2012 STMicroelectronics</center></h2>
  12.   *
  13.   * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
  14.   * You may not use this file except in compliance with the License.
  15.   * You may obtain a copy of the License at:
  16.   *
  17.   *        <a href="http://www.st.com/software_license_agreement_liberty_v2">http://www.st.com/software_license_agreement_liberty_v2</a>
  18.   *
  19.   * Unless required by applicable law or agreed to in writing, software
  20.   * distributed under the License is distributed on an "AS IS" BASIS,
  21.   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  22.   * See the License for the specific language governing permissions and
  23.   * limitations under the License.
  24.   *
  25.   ******************************************************************************
  26.   */</p><p>/* Define to prevent recursive inclusion -------------------------------------*/
  27. #ifndef __USB_BSP__H__
  28. #define __USB_BSP__H__</p><p>/* Includes ------------------------------------------------------------------*/
  29. #include "usb_core.h"
  30. #include "usb_conf.h"
  31. //#include "sys.h"</p><p>/** @addtogroup USB_OTG_DRIVER
  32.   * @{
  33.   */
  34.   
  35. /** @defgroup USB_BSP
  36.   * @brief This file is the
  37.   * @{
  38.   */ </p><p>
  39. /** @defgroup USB_BSP_Exported_Defines
  40.   * @{
  41.   */
  42. /**
  43.   * @}
  44.   */ </p><p>
  45. /** @defgroup USB_BSP_Exported_Types
  46.   * @{
  47.   */
  48. /**
  49.   * @}
  50.   */ </p><p>
  51. /** @defgroup USB_BSP_Exported_Macros
  52.   * @{
  53.   */
  54. /**
  55.   * @}
  56.   */ </p><p>/** @defgroup USB_BSP_Exported_Variables
  57.   * @{
  58.   */
  59. /**
  60.   * @}
  61.   */ </p><p>/** @defgroup USB_BSP_Exported_FunctionsPrototype
  62.   * @{
  63.   */
  64.    </p><p>void BSP_Init(void);</p><p>void USB_OTG_BSP_Init (USB_OTG_CORE_HANDLE *pdev);
  65. void USB_OTG_BSP_uDelay (const uint32_t usec);
  66. void USB_OTG_BSP_mDelay (const uint32_t msec);
  67. void USB_OTG_BSP_EnableInterrupt (USB_OTG_CORE_HANDLE *pdev);
  68. #ifdef USE_HOST_MODE
  69. void USB_OTG_BSP_ConfigVBUS(USB_OTG_CORE_HANDLE *pdev);
  70. void USB_OTG_BSP_DriveVBUS(USB_OTG_CORE_HANDLE *pdev,uint8_t state);
  71. #endif
  72. /**
  73.   * @}
  74.   */ </p><p>#endif //__USB_BSP__H__</p><p>/**
  75.   * @}
  76.   */ </p><p>/**
  77.   * @}
  78.   */
  79. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/</p>
复制代码


回复 支持 反对

使用道具 举报

发表于 2016-6-11 13:42:52 | 显示全部楼层

  1. <p>
  2. SD_Error SD_ReadBlock(uint8_t *readbuff, uint64_t ReadAddr, uint16_t BlockSize)
  3. {
  4.   SD_Error errorstatus = SD_OK;

  5. #if defined (SD_POLLING_MODE)
  6.   uint32_t count = 0, *tempbuff = (uint32_t *)readbuff;
  7. #endif</p><p>  TransferError = SD_OK;
  8.   TransferEnd = 0;
  9.   StopCondition = 0;
  10.   
  11.   SDIO->DCTRL = 0x0; //将 SDIO 数据控制寄存器 (SDIO_DCTRL)清理</p><p>#if defined (SD_DMA_MODE)
  12.   SDIO_ITConfig(SDIO_IT_DCRCFAIL | SDIO_IT_DTIMEOUT | SDIO_IT_DATAEND | SDIO_IT_RXOVERR | SDIO_IT_STBITERR, ENABLE);
  13.   SDIO_DMACmd(ENABLE);
  14.   SD_LowLevel_DMA_RxConfig((uint32_t *)readbuff, BlockSize);
  15. #endif
  16.   
  17.   if (CardType == SDIO_HIGH_CAPACITY_SD_CARD) //sdhc卡的地址以块为单位,每块512字节, sdsc卡地址为字节地址
  18.   {
  19.     BlockSize = 512;
  20. //    ReadAddr /= 512; //源代码不正确,所以注释掉
  21.   }
  22.   else
  23.    ReadAddr *= BlockSize; //转换为字节地址</p><p>  /* Set Block Size for Card cmd16,若是sdsc卡,可以用来设置块大小,若是sdhc卡,块大小为512字节,不受cmd16影响 */
  24.   SDIO_CmdInitStructure.SDIO_Argument = (uint32_t)BlockSize;
  25.   SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_SET_BLOCKLEN; //cmd16:设置块大小
  26.   SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_Short; //r1
  27.   SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;
  28.   SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
  29.   SDIO_SendCommand(&SDIO_CmdInitStructure);</p><p>  errorstatus = CmdResp1Error(SD_CMD_SET_BLOCKLEN);</p><p>  if (SD_OK != errorstatus)
  30.   {
  31.     return(errorstatus);
  32.   }
  33.   
  34.   SDIO_DataInitStructure.SDIO_DataTimeOut = SD_DATATIMEOUT;
  35.   SDIO_DataInitStructure.SDIO_DataLength = BlockSize;
  36.   SDIO_DataInitStructure.SDIO_DataBlockSize = (uint32_t) 9 << 4;  //设置数据控制寄存器的第4-7位(数据块长度)
  37.   SDIO_DataInitStructure.SDIO_TransferDir = SDIO_TransferDir_ToSDIO;
  38.   SDIO_DataInitStructure.SDIO_TransferMode = SDIO_TransferMode_Block;
  39.   SDIO_DataInitStructure.SDIO_DPSM = SDIO_DPSM_Enable;
  40.   SDIO_DataConfig(&SDIO_DataInitStructure);</p><p>  /*!< Send CMD17 READ_SINGLE_BLOCK */
  41.   SDIO_CmdInitStructure.SDIO_Argument = (uint32_t)ReadAddr;
  42.   SDIO_CmdInitStructure.SDIO_CmdIndex = SD_CMD_READ_SINGLE_BLOCK;
  43.   SDIO_CmdInitStructure.SDIO_Response = SDIO_Response_Short;
  44.   SDIO_CmdInitStructure.SDIO_Wait = SDIO_Wait_No;
  45.   SDIO_CmdInitStructure.SDIO_CPSM = SDIO_CPSM_Enable;
  46.   SDIO_SendCommand(&SDIO_CmdInitStructure);</p><p>  errorstatus = CmdResp1Error(SD_CMD_READ_SINGLE_BLOCK);</p><p>  if (errorstatus != SD_OK)
  47.   {
  48.     return(errorstatus);
  49.   }
  50.   return(errorstatus);
  51. }
  52. </p>
复制代码


回复 支持 反对

使用道具 举报

发表于 2016-6-11 13:44:58 | 显示全部楼层
SD_ReadMultiBlocks()
SD_WriteBlock()
SD_WriteMultiBlocks()
这三个函数都这样修改.
回复 支持 反对

使用道具 举报

发表于 2016-6-11 14:17:06 | 显示全部楼层
wgc69 发表于 2016-6-11 13:44
SD_ReadMultiBlocks()
SD_WriteBlock()
SD_WriteMultiBlocks()

漂亮                           
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-22 15:48 , Processed in 0.059793 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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