久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32F411 USB讀寫測試程序 [打印本頁]

作者: sr861126    時間: 2024-3-22 13:47
標題: STM32F411 USB讀寫測試程序
   USB_Device ,USB_OTG

  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "norflash.h"
  6. #include "usbd_msc_core.h"
  7. #include "usbd_usr.h"
  8. #include "usbd_desc.h"
  9. #include "usb_conf.h"



  10. USB_OTG_CORE_HANDLE USB_OTG_dev;
  11. extern vu8 USB_STATUS_REG;                //USB狀態
  12. extern vu8 bDeviceState;                //USB連接 情況

  13. int main(void)
  14. {
  15.     u8 offline_cnt = 0;
  16.     u8 tct = 0;
  17.     u8 USB_STA;
  18.     u8 Divece_STA;

  19.     HAL_Init();                            //初始化HAL庫
  20.     Stm32_Clock_Init(96, 4, 2, 4);  //設置時鐘,96Mhz
  21.     delay_init(96);                 //初始化延時函數
  22.     uart_init(115200);              //初始化USART
  23.     LED_Init();                                        //初始化LED時鐘
  24.     Norflash_Init();                          //SPI FLASH 初始化
  25.     printf("NANO STM32\r\n");
  26.     printf("USB Card Reader TEST\r\n");

  27.     NORFLASH_TYPE = Norflash_ReadID();//讀取FLASH ID
  28.    
  29.     while ((NORFLASH_TYPE==0) && (NORFLASH_TYPE==0XFFFF)) //檢測不到FLASH芯片
  30.     {
  31.         printf("Flash Check Failed!\r\n");
  32.         delay_ms(500);
  33.         printf("Please Check!\r\n");
  34.         delay_ms(500);
  35.         LED0 = !LED0; //DS0閃爍
  36.     }
  37.     printf("SPI FLASH Size:2048KB\r\n");
  38.   
  39.     printf("USB Connecting...\r\n");//提示USB連接中
  40.     USBD_Init(&USB_OTG_dev, USB_OTG_FS_CORE_ID, &USR_desc, &USBD_MSC_cb, &USR_cb);
  41.     delay_ms(1800);

  42.     while (1)
  43.     {

  44.         delay_ms(1);

  45.         if (USB_STA != USB_STATUS_REG) //狀態改變了
  46.         {
  47.             if (USB_STATUS_REG & 0x01) //正在寫
  48.             {
  49.                 printf("USB Writing...\r\n");//提示USB正在寫入數據
  50.             }

  51.             if (USB_STATUS_REG & 0x02) //正在讀
  52.             {
  53.                 printf("USB Reading...\r\n");//提示USB正在讀出數據
  54.             }

  55.             if (USB_STATUS_REG & 0x04)printf("USB Write Err\r\n"); //提示寫入錯誤

  56.             if (USB_STATUS_REG & 0x08)printf("USB Read  Err\r\n"); //提示讀出錯誤

  57.             USB_STA = USB_STATUS_REG; //記錄最后的狀態
  58.         }

  59.         if (Divece_STA != bDeviceState)
  60.         {
  61.             if (bDeviceState == 1) printf("USB Connected\r\n"); //提示USB連接已經建立
  62.             else printf("USB DisConnected\r\n");//提示USB被拔出了

  63.             Divece_STA = bDeviceState;
  64.         }

  65.         tct++;

  66.         if (tct == 200)
  67.         {
  68.             tct = 0;
  69.             LED0 = !LED0; //提示系統在運行

  70.             if (USB_STATUS_REG & 0x10)
  71.             {
  72.                 offline_cnt = 0; //USB連接了,則清除offline計數器
  73.                 bDeviceState = 1;
  74.             }
  75.             else //沒有得到輪詢
  76.             {
  77.                 offline_cnt++;

  78.                 if (offline_cnt > 10)bDeviceState = 0; //2s內沒收到在線標記,代表USB被拔出了
  79.             }

  80.             USB_STATUS_REG = 0;
  81.         }

  82.     }
  83. }

復制代碼


原理圖: 無
仿真: 無
代碼: STM32F411 HAL庫函數版本 USB讀卡器實驗.7z (883.83 KB, 下載次數: 7)





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 人人爽人人草 | chengrenzaixian| 在线播放国产一区二区三区 | 精品美女 | 亚洲h色| 日韩久久在线 | 成人高清在线 | 国产精品成人品 | 欧美亚洲高清 | 成人久久18免费网站 | 中文字幕在线观看 | 在线播放中文字幕 | 国产精品亚洲精品 | jdav视频在线观看免费 | 免费看a | 精品久久久久久亚洲精品 | 亚洲午夜精品一区二区三区他趣 | 中文字幕乱码一区二区三区 | 欧美日韩国产在线观看 | 国产真实乱对白精彩久久小说 | 天堂va在线观看 | 国产亚洲精品美女久久久久久久久久 | 九九久久免费视频 | 四色永久| 一级片在线视频 | 一区二区三区四区视频 | 欧美视频精品 | 一级片av| 国产成人精品久久二区二区91 | 午夜精品一区二区三区在线视 | 福利影院在线看 | 精品欧美一区二区精品久久久 | www亚洲精品 | 久久精品手机视频 | 亚洲综合视频 | 久久99精品久久久久久国产越南 | 999久久久 | 日韩免费视频一区二区 | 国产精品美女久久久久aⅴ国产馆 | 99在线播放| www.色五月.com |