USB_Device ,USB_OTG
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "norflash.h"
- #include "usbd_msc_core.h"
- #include "usbd_usr.h"
- #include "usbd_desc.h"
- #include "usb_conf.h"
- USB_OTG_CORE_HANDLE USB_OTG_dev;
- extern vu8 USB_STATUS_REG; //USB狀態
- extern vu8 bDeviceState; //USB連接 情況
- int main(void)
- {
- u8 offline_cnt = 0;
- u8 tct = 0;
- u8 USB_STA;
- u8 Divece_STA;
- HAL_Init(); //初始化HAL庫
- Stm32_Clock_Init(96, 4, 2, 4); //設置時鐘,96Mhz
- delay_init(96); //初始化延時函數
- uart_init(115200); //初始化USART
- LED_Init(); //初始化LED時鐘
- Norflash_Init(); //SPI FLASH 初始化
- printf("NANO STM32\r\n");
- printf("USB Card Reader TEST\r\n");
- NORFLASH_TYPE = Norflash_ReadID();//讀取FLASH ID
-
- while ((NORFLASH_TYPE==0) && (NORFLASH_TYPE==0XFFFF)) //檢測不到FLASH芯片
- {
- printf("Flash Check Failed!\r\n");
- delay_ms(500);
- printf("Please Check!\r\n");
- delay_ms(500);
- LED0 = !LED0; //DS0閃爍
- }
- printf("SPI FLASH Size:2048KB\r\n");
-
- printf("USB Connecting...\r\n");//提示USB連接中
- USBD_Init(&USB_OTG_dev, USB_OTG_FS_CORE_ID, &USR_desc, &USBD_MSC_cb, &USR_cb);
- delay_ms(1800);
- while (1)
- {
- delay_ms(1);
- if (USB_STA != USB_STATUS_REG) //狀態改變了
- {
- if (USB_STATUS_REG & 0x01) //正在寫
- {
- printf("USB Writing...\r\n");//提示USB正在寫入數據
- }
- if (USB_STATUS_REG & 0x02) //正在讀
- {
- printf("USB Reading...\r\n");//提示USB正在讀出數據
- }
- if (USB_STATUS_REG & 0x04)printf("USB Write Err\r\n"); //提示寫入錯誤
- if (USB_STATUS_REG & 0x08)printf("USB Read Err\r\n"); //提示讀出錯誤
- USB_STA = USB_STATUS_REG; //記錄最后的狀態
- }
- if (Divece_STA != bDeviceState)
- {
- if (bDeviceState == 1) printf("USB Connected\r\n"); //提示USB連接已經建立
- else printf("USB DisConnected\r\n");//提示USB被拔出了
- Divece_STA = bDeviceState;
- }
- tct++;
- if (tct == 200)
- {
- tct = 0;
- LED0 = !LED0; //提示系統在運行
- if (USB_STATUS_REG & 0x10)
- {
- offline_cnt = 0; //USB連接了,則清除offline計數器
- bDeviceState = 1;
- }
- else //沒有得到輪詢
- {
- offline_cnt++;
- if (offline_cnt > 10)bDeviceState = 0; //2s內沒收到在線標記,代表USB被拔出了
- }
- USB_STATUS_REG = 0;
- }
- }
- }
復制代碼
原理圖: 無
仿真: 無
代碼:
STM32F411 HAL庫函數版本 USB讀卡器實驗.7z
(883.83 KB, 下載次數: 7)
2024-3-24 03:13 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|