打印
[其他ST产品]

STM32f105写U盘

[复制链接]
楼主: yellow555
手机看帖
扫描二维码
随时随地手机跟帖
21
yellow555|  楼主 | 2023-10-28 21:00 | 只看该作者 回帖奖励 |倒序浏览
/**
* @brief  USBH_USR_DeviceAddressAssigned
*        //从机地址分配成功
* @param  None
* @retval None
*/
void USBH_USR_DeviceAddressAssigned(void)
{
      Debug_Com_printf("从机地址分配成功!\r\n");   
}

使用特权

评论回复
22
yellow555|  楼主 | 2023-10-28 21:01 | 只看该作者
/**
* @brief  USBH_USR_Conf_Desc
*         //配置描述符获有效
* @param  Configuration descriptor
* @retval None
*/
void USBH_USR_Configuration_DescAvailable(USBH_CfgDesc_TypeDef * cfgDesc,
                                          USBH_InterfaceDesc_TypeDef *itfDesc,
                                          USBH_EpDesc_TypeDef *epDesc)
{
    USBH_InterfaceDesc_TypeDef *id;
    id = itfDesc;   
    if((*id).bInterfaceClass==0x08)
    {
        Debug_Com_printf("可移动存储器设备!\r\n");
    }else if((*id).bInterfaceClass==0x03)
    {
        Debug_Com_printf("HID 设备!\r\n");
    }   
}

使用特权

评论回复
23
yellow555|  楼主 | 2023-10-28 21:01 | 只看该作者
/**
* @brief  USBH_USR_Manufacturer_String
*         //获取到设备Manufacturer String
* @param  Manufacturer String
* @retval None
*/
void USBH_USR_Manufacturer_String(void *ManufacturerString)
{
Debug_Com_printf("Manufacturer: %s\r\n",(char *)ManufacturerString);
}

/**
* @brief  USBH_USR_Product_String
*         //获取到设备Product String
* @param  Product String
* @retval None
*/
void USBH_USR_Product_String(void *ProductString)
{
        Debug_Com_printf("Product: %s\r\n",(char *)ProductString);
//  LCD_UsrLog("Product : %s\n", (char *)ProductString);  
}

使用特权

评论回复
24
yellow555|  楼主 | 2023-10-28 21:01 | 只看该作者
/**
* @brief  USBH_USR_SerialNum_String
*       //获取到设备SerialNum String
* @param  SerialNum_String
* @retval None
*/
void USBH_USR_SerialNum_String(void *SerialNumString)
{
Debug_Com_printf("Serial Number: %s\r\n",(char *)SerialNumString);  
   
}

使用特权

评论回复
25
yellow555|  楼主 | 2023-10-28 21:01 | 只看该作者
/**
* @brief  EnumerationDone
*       //设备USB枚举完成
* @param  None
* @retval None
*/
void USBH_USR_EnumerationDone(void)
{
  
    Debug_Com_printf("设备枚举完成!\r\n\r\n");
  
}

使用特权

评论回复
26
yellow555|  楼主 | 2023-10-28 21:01 | 只看该作者

/**
* @brief  USBH_USR_DeviceNotSupported
*      //无法识别的USB设备
* @param  None
* @retval None
*/
void USBH_USR_DeviceNotSupported(void)
{
        Debug_Com_printf("无法识别的USB设备!\r\n\r\n");
//  LCD_ErrLog ("No registered class for this device. \n\r");
}  


/**
* @brief  USBH_USR_UserInput
*        //等待用户输入按键,执行下一步操作
* @param  None
* @retval USBH_USR_Status : User response for key button
*/
USBH_USR_Status USBH_USR_UserInput(void)
{
        Debug_Com_printf("跳过用户确认步骤!\r\n");
    return USBH_USR_RESP_OK;
}  

/**
* @brief  USBH_USR_OverCurrentDetected
*        //USB接口电流过载
* @param  None
* @retval Status
*/
void USBH_USR_OverCurrentDetected (void)
{
        Debug_Com_printf("端口电流过大!!!\r\n");
//  LCD_ErrLog ("Overcurrent detected.");
}


使用特权

评论回复
27
yellow555|  楼主 | 2023-10-28 21:01 | 只看该作者
u8  text_buffer[50] = "hospital,bednumber,name,age,sex,\n1,2,3,4,5,\n";




u8 USH_User_App(void)
{
    FATFS fs[_VOLUMES];//逻辑磁盘工作区.
    u8 f_res;
  FIL filescr1;   
  UINT br;
      f_res=f_mount(&fs[0],"0:",1);     //重新挂载U盘
      
  f_res=f_mkdir("0:DATA");//新建文件夹,其中DATA是文件夹名称
      f_res=f_open(&filescr1,"0:20190522.csv", FA_CREATE_ALWAYS|FA_WRITE);
     
       f_res= f_write(&filescr1, text_buffer, sizeof(text_buffer), &br);
   
    //在新建的文件夹下创建新的txt文本文件新建完成之后要记得关闭该文件,否则就会出错。
   f_res = f_close(&filescr1);
    Debug_Com_printf("写入完成\r\n");
    while(HCD_IsDeviceConnected(&USB_OTG_Core))//设备连接成功
    {   
  

    }

     f_mount(0,"35:",1);     //卸载U盘
  Debug_Com_printf("USB已卸载\r\n");
    return 1;
}

使用特权

评论回复
28
yellow555|  楼主 | 2023-10-28 21:02 | 只看该作者
/**
* @brief  USBH_USR_MSC_Application
*       //USB HOST MSC类用户应用程序
* @param  None
* @retval Status
*/
int USBH_USR_MSC_Application(void)
{
     u8 res=0;
      switch(AppState)
      {
        case USH_USR_FS_INIT://初始化文件系统
               Debug_Com_printf("开始执行用户程序!!!\r\n");
              AppState=1;
              break;
        case 1 :    //执行USB OTG 测试主程序
               
            
            res=USH_User_App(); //用户主程序
             res=0;
            if(res)AppState=USH_USR_FS_INIT;
              break;
        default:break;
      }
    return res;
}


/* @brief  USBH_USR_DeInit
*         Deinit User state and associated variables
* @param  None
* @retval None
*/
void USBH_USR_DeInit(void)
{
  USBH_USR_ApplicationState = USH_USR_FS_INIT;
}

使用特权

评论回复
29
yellow555|  楼主 | 2023-10-28 21:02 | 只看该作者
//用户定义函数,实现fatfs diskio的接口函数



//读U盘
//buf:读数据缓存区
//sector:扇区地址
//cnt:扇区个数   
//返回值:错误状态;0,正常;其他,错误代码;         
u8 USBH_UDISK_Read(u8* buf,u32 sector,u32 cnt)
{
    u8 res=1;
    if(HCD_IsDeviceConnected(&USB_OTG_Core)&&AppState==USH_USR_FS_TEST)//连接还存在,且是APP测试状态
    {              
        do
        {
            res=USBH_MSC_Read10(&USB_OTG_Core,buf,sector,512*cnt);
            USBH_MSC_HandleBOTXfer(&USB_OTG_Core ,&USB_Host);              
            if(!HCD_IsDeviceConnected(&USB_OTG_Core))
            {
                res=1;//读写错误
                Debug_Com_printf("读写错误!!!\r\n");
                break;
            };   
        }while(res==USBH_MSC_BUSY);
    }else res=1;         
    if(res==USBH_MSC_OK)res=0;   
    return res;
}

使用特权

评论回复
30
yellow555|  楼主 | 2023-10-28 21:02 | 只看该作者

//写U盘
//buf:写数据缓存区
//sector:扇区地址
//cnt:扇区个数   
//返回值:错误状态;0,正常;其他,错误代码;         
u8 USBH_UDISK_Write(u8* buf,u32 sector,u32 cnt)
{
    u8 res=1;
    if(HCD_IsDeviceConnected(&USB_OTG_Core)&&AppState==USH_USR_FS_TEST)//连接还存在,且是APP测试状态
    {              
        do
        {
            res=USBH_MSC_Write10(&USB_OTG_Core,buf,sector,512*cnt);
            USBH_MSC_HandleBOTXfer(&USB_OTG_Core ,&USB_Host);              
            if(!HCD_IsDeviceConnected(&USB_OTG_Core))
            {
                res=1;//读写错误
                Debug_Com_printf("读写错误!!!\r\n");
                break;
            };   
        }while(res==USBH_MSC_BUSY);
    }else res=1;         
    if(res==USBH_MSC_OK)res=0;   
    return res;
}

使用特权

评论回复
31
yellow555|  楼主 | 2023-10-28 21:02 | 只看该作者

/**
* @}
*/

/**
* @}
*/

/**
* @}
*/

/**
* @}
*/

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

/**
  ******************************************************************************
  * @file    usbh_usr.h
  * @author  MCD Application Team
  * @version V1.2.0
  * @date    09-November-2015
  * @brief   Header file for usbh_usr.c
  ******************************************************************************
  * @attention
  *
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
  *
  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
  * You may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
  *
  *        http://www.st.com/software_license_agreement_liberty_v2
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USH_USR_H__
#define __USH_USR_H__

/* Includes ------------------------------------------------------------------*/
#include "ff.h"
#include "usbh_core.h"
#include "usb_conf.h"
#include <stdio.h>
#include "usbh_msc_core.h"

/** @addtogroup USBH_USER
  * @{
  */

/** @addtogroup USBH_MSC_DEMO_USER_CALLBACKS
  * @{
  */

/** @defgroup USBH_USR
  * @brief This file is the Header file for usbh_usr.c
  * @{
  */


/** @defgroup USBH_USR_Exported_Types
  * @{
  */


extern  USBH_Usr_cb_TypeDef USR_cb;



/**
  * @}
  */



/** @defgroup USBH_USR_Exported_Defines
  * @{
  */
/* State Machine for the USBH_USR_ApplicationState */
#define USH_USR_FS_INIT       0

#define USH_USR_FS_TEST           1  
#define USH_USR_FS_READLIST   1
#define USH_USR_FS_WRITEFILE  2
#define USH_USR_FS_DRAW       3
/**
  * @}
  */

/** @defgroup USBH_USR_Exported_Macros
  * @{
  */
/**
  * @}
  */

/** @defgroup USBH_USR_Exported_Variables
  * @{
  */
extern  uint8_t USBH_USR_ApplicationState ;
/**
  * @}
  */

/** @defgroup USBH_USR_Exported_FunctionsPrototype
  * @{
  */

使用特权

评论回复
32
yellow555|  楼主 | 2023-10-28 21:02 | 只看该作者
void USBH_USR_ApplicationSelected(void);
void USBH_USR_Init(void);
void USBH_USR_DeInit(void);
void USBH_USR_DeviceAttached(void);
void USBH_USR_ResetDevice(void);
void USBH_USR_DeviceDisconnected (void);
void USBH_USR_OverCurrentDetected (void);
void USBH_USR_DeviceSpeedDetected(uint8_t DeviceSpeed);
void USBH_USR_Device_DescAvailable(void *);
void USBH_USR_DeviceAddressAssigned(void);
void USBH_USR_Configuration_DescAvailable(USBH_CfgDesc_TypeDef * cfgDesc,
                                          USBH_InterfaceDesc_TypeDef *itfDesc,
                                          USBH_EpDesc_TypeDef *epDesc);
void USBH_USR_Manufacturer_String(void *);
void USBH_USR_Product_String(void *);
void USBH_USR_SerialNum_String(void *);
void USBH_USR_EnumerationDone(void);
USBH_USR_Status USBH_USR_UserInput(void);
void USBH_USR_DeInit(void);
void USBH_USR_DeviceNotSupported(void);
void USBH_USR_UnrecoveredError(void);
int USBH_USR_MSC_Application(void);

使用特权

评论回复
33
yellow555|  楼主 | 2023-10-28 21:02 | 只看该作者
uint8_t USBH_UDISK_Status(void);
u8 USBH_UDISK_Write(u8* buf,u32 sector,u32 cnt);
u8 USBH_UDISK_Read(u8* buf,u32 sector,u32 cnt);
/**
  * @}
  */

#endif /*__USH_USR_H__*/

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

注意一点这个C文件我是这样修改的。

使用特权

评论回复
34
yellow555|  楼主 | 2023-10-28 21:04 | 只看该作者
/**
  ******************************************************************************
  * @file    usbh_conf_template
  * @author  MCD Application Team
  * @version V2.2.0
  * @date    09-November-2015
  * @brief   General USB Host library configuration
  ******************************************************************************
  * @attention
  *
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
  *
  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
  * You may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
  *
  *        http://www.st.com/software_license_agreement_liberty_v2
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USBH_CONF__H__
#define __USBH_CONF__H__

/* Includes ------------------------------------------------------------------*/

/** @addtogroup USBH_OTG_DRIVER
  * @{
  */
  
/** @defgroup USBH_CONF
  * @brief usb otg low level driver configuration file
  * @{
  */

/** @defgroup USBH_CONF_Exported_Defines
  * @{
  */

#define USBH_MAX_NUM_ENDPOINTS                2
#define USBH_MAX_NUM_INTERFACES               2


#ifdef USE_USB_OTG_FS
#define USBH_MSC_MPS_SIZE                 0x40
#else
#define USBH_MSC_MPS_SIZE                 0x200
#endif

///检测U盘大小的问价默认是2 一定要修改否则无法通过枚举过程

#define USBH_MAX_DATA_BUFFER              0x400///
/**
  * @}
  */


/** @defgroup USBH_CONF_Exported_Types
  * @{
  */
/**
  * @}
  */


/** @defgroup USBH_CONF_Exported_Macros
  * @{
  */
/**
  * @}
  */

/** @defgroup USBH_CONF_Exported_Variables
  * @{
  */
/**
  * @}
  */

/** @defgroup USBH_CONF_Exported_FunctionsPrototype
  * @{
  */
/**
  * @}
  */

使用特权

评论回复
35
yellow555|  楼主 | 2023-10-28 21:06 | 只看该作者
#endif //__USBH_CONF__H__


/**
  * @}
  */

/**
  * @}
  */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

/**
  ******************************************************************************
  * @file    usb_conf.h
  * @author  MCD Application Team
  * @version V2.2.0
  * @date    09-November-2015
  * @brief   General low level driver configuration
  ******************************************************************************
  * @attention
  *
  * <h2><center>© COPYRIGHT 2015 STMicroelectronics</center></h2>
  *
  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
  * You may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
  *
  *        http://www.st.com/software_license_agreement_liberty_v2
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  ******************************************************************************
  */

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USB_CONF__H__
#define __USB_CONF__H__

/* Includes ------------------------------------------------------------------*/


/** @addtogroup USB_OTG_DRIVER
  * @{
  */
  
/** @defgroup USB_CONF
  * @brief USB low level driver configuration file
  * @{
  */

/** @defgroup USB_CONF_Exported_Defines
  * @{
  */

/* USB Core and PHY interface configuration.
   Tip: To avoid modifying these defines each time you need to change the USB
        configuration, you can declare the needed define in your toolchain
        compiler preprocessor.
   */
/****************** USB OTG FS PHY CONFIGURATION *******************************
*  The USB OTG FS Core supports one on-chip Full Speed PHY.
*  
*  The USE_EMBEDDED_PHY symbol is defined in the project compiler preprocessor
*  when FS core is used.
*******************************************************************************/


使用特权

评论回复
36
yellow555|  楼主 | 2023-10-28 21:10 | 只看该作者
//一定要在 Option for Target ->c++->define 中添加  ,USE_USB_OTG_FS


#ifdef USE_USB_OTG_FS
#define USB_OTG_FS_CORE
#endif

/****************** USB OTG HS PHY CONFIGURATION *******************************
*  The USB OTG HS Core supports two PHY interfaces:
*   (i)  An ULPI interface for the external High Speed PHY: the USB HS Core will
*        operate in High speed mode
*   (ii) An on-chip Full Speed PHY: the USB HS Core will operate in Full speed mode
*
*  You can select the PHY to be used using one of these two defines:
*   (i)  USE_ULPI_PHY: if the USB OTG HS Core is to be used in High speed mode
*   (ii) USE_EMBEDDED_PHY: if the USB OTG HS Core is to be used in Full speed mode
*
*  Notes:
*   - The USE_ULPI_PHY symbol is defined in the project compiler preprocessor as
*     default PHY when HS core is used.
*   - On STM322xG-EVAL and STM324xG-EVAL boards, only configuration(i) is available.
*     Configuration (ii) need a different hardware, for more details refer to your
*     STM32 device datasheet.
*******************************************************************************/
//#ifndef USE_USB_OTG_HS
// //#define USE_USB_OTG_HS
//#endif /* USE_USB_OTG_HS */

//#ifndef USE_ULPI_PHY
// //#define USE_ULPI_PHY
//#endif /* USE_ULPI_PHY */

//#ifndef USE_EMBEDDED_PHY
// //#define USE_EMBEDDED_PHY
//#endif /* USE_EMBEDDED_PHY */

//#ifdef USE_USB_OTG_HS
// #define USB_OTG_HS_CORE
//#endif

使用特权

评论回复
37
yellow555|  楼主 | 2023-10-28 21:10 | 只看该作者
/*******************************************************************************
*                      FIFO Size Configuration in Device mode
*  
*  (i) Receive data FIFO size = RAM for setup packets +
*                   OUT endpoint control information +
*                   data OUT packets + miscellaneous
*      Space = ONE 32-bits words
*     --> RAM for setup packets = 10 spaces
*        (n is the nbr of CTRL EPs the device core supports)
*     --> OUT EP CTRL info      = 1 space
*        (one space for status information written to the FIFO along with each
*        received packet)
*     --> data OUT packets      = (Largest Packet Size / 4) + 1 spaces
*        (MINIMUM to receive packets)
*     --> OR data OUT packets  = at least 2*(Largest Packet Size / 4) + 1 spaces
*        (if high-bandwidth EP is enabled or multiple isochronous EPs)
*     --> miscellaneous = 1 space per OUT EP
*        (one space for transfer complete status information also pushed to the
*        FIFO with each endpoint's last packet)
*
*  (ii)MINIMUM RAM space required for each IN EP Tx FIFO = MAX packet size for
*       that particular IN EP. More space allocated in the IN EP Tx FIFO results
*       in a better performance on the USB and can hide latencies on the AHB.
*
*  (iii) TXn min size = 16 words. (n  : Transmit FIFO index)
*   (iv) When a TxFIFO is not used, the Configuration should be as follows:
*       case 1 :  n > m    and Txn is not used    (n,m  : Transmit FIFO indexes)
*       --> Txm can use the space allocated for Txn.
*       case2  :  n < m    and Txn is not used    (n,m  : Transmit FIFO indexes)
*       --> Txn should be configured with the minimum space of 16 words
*  (v) The FIFO is used optimally when used TxFIFOs are allocated in the top
*       of the FIFO.Ex: use EP1 and EP2 as IN instead of EP1 and EP3 as IN ones.
*******************************************************************************/

使用特权

评论回复
38
yellow555|  楼主 | 2023-10-28 21:11 | 只看该作者
/*******************************************************************************
*                     FIFO Size Configuration in Host mode
*  
*  (i) Receive data FIFO size = (Largest Packet Size / 4) + 1 or
*                             2x (Largest Packet Size / 4) + 1,  If a
*                             high-bandwidth channel or multiple isochronous
*                             channels are enabled
*
*  (ii) For the host nonperiodic Transmit FIFO is the largest maximum packet size
*      for all supported nonperiodic OUT channels. Typically, a space
*      corresponding to two Largest Packet Size is recommended.
*
*  (iii) The minimum amount of RAM required for Host periodic Transmit FIFO is
*        the largest maximum packet size for all supported periodic OUT channels.
*        If there is at least one High Bandwidth Isochronous OUT endpoint,
*        then the space must be at least two times the maximum packet size for
*        that channel.
*******************************************************************************/

使用特权

评论回复
39
yellow555|  楼主 | 2023-10-28 21:11 | 只看该作者
/****************** USB OTG HS CONFIGURATION不使用 **********************************/
#ifdef USB_OTG_HS_CORE
#define RX_FIFO_HS_SIZE                          512
#define TX0_FIFO_HS_SIZE                         512
#define TX1_FIFO_HS_SIZE                         512
#define TX2_FIFO_HS_SIZE                          0
#define TX3_FIFO_HS_SIZE                          0
#define TX4_FIFO_HS_SIZE                          0
#define TX5_FIFO_HS_SIZE                          0
#define TXH_NP_HS_FIFOSIZ                         96
#define TXH_P_HS_FIFOSIZ                          96

// #define USB_OTG_HS_LOW_PWR_MGMT_SUPPORT
// #define USB_OTG_HS_SOF_OUTPUT_ENABLED

// #define USB_OTG_INTERNAL_VBUS_ENABLED


// #define USB_OTG_EXTERNAL_VBUS_ENABLED

#ifdef USE_ULPI_PHY
  #define USB_OTG_ULPI_PHY_ENABLED
#endif
#ifdef USE_EMBEDDED_PHY
   #define USB_OTG_EMBEDDED_PHY_ENABLED
#endif
#define USB_OTG_HS_INTERNAL_DMA_ENABLED
#define USB_OTG_HS_DEDICATED_EP1_ENABLED
#endif

使用特权

评论回复
40
yellow555|  楼主 | 2023-10-28 21:11 | 只看该作者
/****************** USB OTG FS CONFIGURATION 我用的USB HOST模式 **********************************/
#ifdef USB_OTG_FS_CORE
#define RX_FIFO_FS_SIZE                          128
#define TX0_FIFO_FS_SIZE                          64
#define TX1_FIFO_FS_SIZE                         128
#define TX2_FIFO_FS_SIZE                          0
#define TX3_FIFO_FS_SIZE                          0
#define TXH_NP_FS_FIFOSIZ                         96
#define TXH_P_FS_FIFOSIZ                          96

// #define USB_OTG_FS_LOW_PWR_MGMT_SUPPORT
// #define USB_OTG_FS_SOF_OUTPUT_ENABLED
#endif

/****************** USB OTG MISC CONFIGURATION ********************************/
//#define VBUS_SENSING_ENABLED

/****************** USB OTG MODE CONFIGURATION ********************************/
#define USE_HOST_MODE
//#define USE_DEVICE_MODE
//#define USE_OTG_MODE

#ifndef USB_OTG_FS_CORE
#ifndef USB_OTG_HS_CORE
    #error  "USB_OTG_HS_CORE or USB_OTG_FS_CORE should be defined"
#endif
#endif

#ifndef USE_DEVICE_MODE
#ifndef USE_HOST_MODE
    #error  "USE_DEVICE_MODE or USE_HOST_MODE should be defined"
#endif
#endif

#ifndef USE_USB_OTG_HS
#ifndef USE_USB_OTG_FS
    #error  "USE_USB_OTG_HS or USE_USB_OTG_FS should be defined"
#endif
#else //USE_USB_OTG_HS
#ifndef USE_ULPI_PHY
  #ifndef USE_EMBEDDED_PHY
     #error  "USE_ULPI_PHY or USE_EMBEDDED_PHY should be defined"
  #endif
#endif
#endif

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则