找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2622|回復(fù): 1
收起左側(cè)

基于STM32F407ZGT6的USB虛擬串口代碼

[復(fù)制鏈接]
ID:98798 發(fā)表于 2020-7-20 17:04 | 顯示全部樓層 |閱讀模式
#include "sys.h"
#include "delay.h"  
#include "usart.h"   
#include "led.h"
#include "lcd.h"
#include "key.h"   
#include "malloc.h"
#include "w25qxx.h"   
#include "sdio_sdcard.h"   
#include "usbd_usr.h"
#include "usbd_desc.h"
#include "usb_conf.h"
#include "usbd_cdc_core.h"
#include "usbd_cdc_vcp.h"  

USB_OTG_CORE_HANDLE USB_OTG_dev;

extern vu8 bDeviceState;                //USB連接 情況

int main(void)
{        
         u16 t;
        u16 len;        
        u16 times=0;   
        u8 usbstatus=0;        


        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級分組2
        delay_init(168);  //初始化延時(shí)函數(shù)
        uart_init(115200);                //初始化串口波特率為115200
        LED_Init();                                        //初始化LED  
         LCD_Init();                                        //LCD初始化  
         KEY_Init();                                        //按鍵初始化  
        W25QXX_Init();                                //初始化W25Q128  

          POINT_COLOR=RED;
        LCD_ShowString(30,50,200,16,16,"EXPLORER F407");
        LCD_ShowString(30,70,200,16,16,"USB Virtual USART TEST");        
        LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
        LCD_ShowString(30,110,200,16,16,"2019/9/3");         
         LCD_ShowString(30,130,200,16,16,"USB Connecting...");//提示USB開始連接
        USBD_Init(&USB_OTG_dev,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_CDC_cb,&USR_cb);
                 while(1)
        {
                if(usbstatus!=bDeviceState)//USB連接狀態(tài)發(fā)生了改變.
                {
                        usbstatus=bDeviceState;//記錄新的狀態(tài)
                        if(usbstatus==1)
                        {
                                POINT_COLOR=BLUE;
                                LCD_ShowString(30,130,200,16,16,"USB Connected    ");//提示USB連接成功
                                LED1=0;//DS1亮
                        }
                        else
                        {
                                POINT_COLOR=RED;
                                LCD_ShowString(30,130,200,16,16,"USB disConnected ");//提示USB斷開
                                LED1=1;//DS1滅
                        }
                }
                if(USB_USART_RX_STA&0x8000)
                {                                          
                        len=USB_USART_RX_STA&0x3FFF;//得到此次接收到的數(shù)據(jù)長度
                        usb_printf("\r\n您發(fā)送的消息為:%d\r\n\r\n",len);
                        for(t=0;t<len;t++)
                        {
                                VCP_DataTx(USB_USART_RX_BUF[t]);//以字節(jié)方式,發(fā)送給USB
                        }
                        usb_printf("\r\n\r\n");//插入換行
                        USB_USART_RX_STA=0;
                }else
                {
                        times++;
                        if(times%5000==0)
                        {
                                usb_printf("\r\n阿波羅STM32F4/F7開發(fā)板USB虛擬串口實(shí)驗(yàn)\r\n");
                                usb_printf("正點(diǎn)原子@ALIENTEK\r\n\r\n");
                        }
                        if(times%200==0)usb_printf("請輸入數(shù)據(jù),以回車鍵結(jié)束\r\n");  
                        if(times%30==0)
                                LED0=!LED0;//閃爍LED,提示系統(tǒng)正在運(yùn)行.
                        delay_ms(10);   
                }
        }  
        
        

}

探索者USB虛擬串口.7z

518.33 KB, 下載次數(shù): 47, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

ID:591382 發(fā)表于 2020-8-10 10:40 | 顯示全部樓層
USB虛擬串口這模塊的知識,我很久之前就想學(xué)習(xí)了。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表