int main(void) { char ch; /* 初始化LED */ LED_GPIO_Config();
/* 初始化调试串口,一般为串口1 */ Debug_USART_Config();
printf("\r\n这是一个USB OTG例程,STM32作USB主机读取U盘 \r\n");
/* Init Host Library */ USBH_Init(&USB_OTG_Core, USB_OTG_FS_CORE_ID, &USB_Host, &USBH_MSC_cb, &USR_cb); printf("\r\nUSBH_Init成功\r\n");
while(1) { //USB处理过程 USBH_Process(&USB_OTG_Core, &USB_Host);
ch = getchar(); printf("输入字符是:%c\r\n",ch);
switch(ch) { case '1': { LED2_TOGGLE; printf("case1操作"); result = f_mount(&fs,"0:",1); /* Mount a logical drive */ printf("挂载文件系统"); if(result != FR_OK) { printf("\r\n文件系统挂载失败!\r\n"); } else { ch = '0'; printf("\r\n扫描到的U盘文件:\r\n"); scan_files(scan_path); } break; } case '2': { LED3_TOGGLE; result = f_mount(&fs,"0:",1); /* Mount a logical drive */ if(result != FR_OK) { printf("\r\n文件系统挂载失败!\r\n"); } else { ch = '0'; read_write_flie(); /* 读取根目录下test.txt的内容 */ } break;
default: /* 如果不是指定指令字符,打印提示信息 */ printf("\r\n输入有误\r\n"); break; } } } } 之前用按键刷新做条件能成功运行,换成串口字符做条件就卡住了,没遇到过这种情况,求助大佬
|