我将正点原子的USB(虚拟串口)例程完整的移植到我的一个freertos程序当中,但是电脑一直读不到USB的,是不是我还需要在哪个地方配置一下
代码如下
int main(void)
{
u32 total,free;
u16 len;
u16 times=0;
u8 usbstatus=0;
u8 res=0;
RTC_TimeTypeDef RTC_TimeStruct;
RTC_DateTypeDef RTC_DateStruct;
u8 tbuf[40];
u8 t=0;
Cache_Enable(); //打开L1-Cache
MPU_Memory_Protection(); //保护相关存储区域
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(160,5,2,4); //设置时钟,400Mhz
delay_init(400); //延时初始化
uart_init(115200); //串口初始化
usmart_dev.init(200); //初始化USMART
LED_Init();
TFTLCD_Init(); //初始化LED
SDRAM_Init(); //初始化SDRAM
RTC_Init(); //初始化RTC
W25QXX_Init(); //初始化W25Q256
my_mem_init(SRAMIN); //初始化内部内存池
my_mem_init(SRAMEX); //初始化外部内存池
my_mem_init(SRAMDTCM); //初始化CCM内存池
LCD_Fill(30,150,240,150+16,WHITE); //清除显示
HAL_RTC_GetTime(&RTC_Handler,&RTC_TimeStruct,RTC_FORMAT_BIN);
POINT_COLOR=RED;
LCD_ShowString(30,50,200,16,16,"Apollo STM32F4/F7");
LCD_ShowString(30,70,200,16,16,"RTC TEST");
LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,110,200,16,16,"2017/8/12");
USBD_Init(&USBD_Device,&VCP_Desc,0);
USBD_RegisterClass(&USBD_Device,USBD_CDC_CLASS);
USBD_CDC_RegisterInterface(&USBD_Device,&USBD_CDC_fops);
USBD_Start(&USBD_Device);
HAL_PWREx_EnableUSBVoltageDetector();
printf("hello
");
FTL_Init();
exfuns_init(); //为fatfs相关变量申请内存
printf("run
");
res=f_mount(fs[2],"2:",1); //挂载NAND FLASH.
if(res==0X0D)//NAND FLASH磁盘,FAT文件系统错误,重新格式化NAND FLASH
{
res=f_mkfs("2:",FM_ANY,0,fatbuf,FF_MAX_SS); //格式化FLASH,2,盘符;1,不需要引导区,8个扇区为1个簇
if(res==0)
{
f_setlabel((const TCHAR *)"2:NANDDISK"); //设置Flash磁盘的名字为:NANDDISK
}
delay_ms(1000);
}
LCD_Clear(WHITE);
__HAL_RCC_CRC_CLK_ENABLE(); //使能CRC时钟
//创建开始任务
/*xTaskCreate((TaskFunction_t )start_task, //任务函数
(const char* )"start1_task", //任务名称
(uint16_t )2048, //任务堆栈大小
(void* )NULL, //传递给任务函数的参数
(UBaseType_t )1, //任务优先级
(TaskHandle_t* )&StartTask_Handler); //任务句柄 */
vTaskStartScheduler(); //开启任务调度
} |