网站首页
这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 超级简单的USB-CDC虚拟串口应用及不停电下载-STC32

共2条 1/1 1 跳转至

超级简单的USB-CDC虚拟串口应用及不停电下载-STC32

Digital1
助工
2023-04-18 13:35:51      打赏
只看楼主 1楼

STC32超级简单的USB-CDC虚拟串口应用及不停电下载
1.1   USB-CDC虚拟串口概述

当单片机需要和电脑之间进行数据交换时,首选一般都是串口通讯。32位8051,STC32G12K128单片机内置USB控制器和收发器。当用户代码中嵌入USB-CDC代码后,使用USB线将单片机与电脑直接相连接,在电脑端就可识别出【USB-CDC虚拟串口】,【USB-CDC虚拟串口】就是【串口】, 就是【简单最强大的串口】


USB-CDC虚拟串口和传统串口相比有如下优点:Ø  数据传输更快:   USB-CDC虚拟串口忽略传统串口的波特率,传输速度的比特率即为全速USB的通讯速度12MBPS(即每秒12M位)Ø  使用更简单便捷:USB-CDC虚拟串口忽略传统串口的起始位、停止位等冗余信息Ø  数据传输更可靠:USB-CDC虚拟串口丢弃传统串口简单的软件奇偶校验机制,USB-CDC虚拟串口数据传输时有USB硬件CRC校验,以及校验出错重传机制,保证数据100%正确Ø  自动缓存数据:   USB-CDC虚拟串口会自动缓存数据。单片机在没有处理完成上位机下传的上一笔数据时,如果此时上位机又有新的数据下传,虚拟串口会自动将新的数据缓存,从而保证数据100%不会丢失或被覆盖。

1.png

USB-CDC虚拟串口和传统串口相比有如下优点:Ø  数据传输更快:   USB-CDC虚拟串口忽略传统串口的波特率,传输速度的比特率即为全速USB的通讯速度12MBPS(即每秒12M位)Ø  使用更简单便捷:USB-CDC虚拟串口忽略传统串口的起始位、停止位等冗余信息Ø  数据传输更可靠:USB-CDC虚拟串口丢弃传统串口简单的软件奇偶校验机制,USB-CDC虚拟串口数据传输时有USB硬件CRC校验,以及校验出错重传机制,保证数据100%正确Ø  自动缓存数据:   USB-CDC虚拟串口会自动缓存数据。单片机在没有处理完成上位机下传的上一笔数据时,如果此时上位机又有新的数据下传,虚拟串口会自动将新的数据缓存,从而保证数据100%不会丢失或被覆盖。


1.2     新建Keil项目并加入CDC模块

1、首选从官网下载CDC代码库( https://www.stcai.com/filedownload/656048)

22.png


2、下载完成后,从压缩包中将“stc_usb_cdc_32g.lib”和“stc32_stc8_usb.h”解压到项目目录中

333.png

3、打开Keil软件,并新建项目

4.png

5.png

Database请选择“STC MCU Database

6.png

单片机型号选择“STC32G12K128 Series

7.png

4、项目建立完成后,将下面的代码命名为main.c文件并保存到项目目录中//测试工作频率为24MHz#include "stc32g.h"#include "stc32_stc8_usb.h"#define       FOSC                 24000000UL//ISP下载时需将工作频率设置为24MHzchar *USER_DEVICEDESC = NULL;char *USER_PRODUCTDESC = NULL;char *USER_STCISPCMD = "@STCISP#";                                     //不停电自动ISP下载命令void main(){         WTST= 0;         CKCON= 0;         EAXFR= 1;         P0M1= 0x00;   P0M0 = 0x00;         P1M1= 0x00;   P1M0 = 0x00;         P2M1= 0x00;   P2M0 = 0x00;         P3M1= 0x00;   P3M0 = 0x00;         P4M1= 0x00;   P4M0 = 0x00;         P5M1= 0x00;   P5M0 = 0x00;         P6M1= 0x00;   P6M0 = 0x00;         P7M1= 0x00;   P7M0 = 0x00;         P3M0&= ~0x03;                                                                          //P3.0/P3.1USBD-/D+共用PIN脚,         P3M1|= 0x03;                                                                              //需要将P3.0/P3.1设置为高阻输入模式         IRC48MCR= 0x80;                                                                     //使能内部48MUSB专用IRC         while(!(IRC48MCR & 0x01));         USBCLK= 0x00;                                                                         //设置USB时钟源为内部48MUSB专用IRC         USBCON= 0x90;                                                                         //使能USB功能         usb_init();                                                                                     //调用USB CDC初始化库函数         EUSB= 1;                                                                                     //使能USB中断         EA= 1;         while(DeviceState != DEVSTATE_CONFIGURED);              //等待USB完成配置         while(1)         {                   if(bUsbOutReady)                                                              //当硬件接收完成上位机通过串口助手发送数据后//会自动将bUsbOutReady1//接收的数据字节数保存在OutNumber变量中//接收的数据保存在UsbOutBuffer缓冲区                   {                            USB_SendData(UsbOutBuffer,OutNumber);         //使用USB_SendData库函数可向上位机发送数据//这里的测试代码为将接收数据原样返回                            usb_OUT_done();                                                      //处理完成接收的数据后//调用usb_OUT_done准备接收下一笔数据                   }         }}


5、将项目目录下的“main.c”和“stc_usb_cdc_32g.lib”加入到项目中

88.png9.png

10.png

6、进行项目设置

11.png

设置完成后,编译通过即可生产目标HEX文件
7、使用最新的STC-ISP下载软件将HEX下载到目标芯片

15.png

8、下载完成后,系统中就会出现一个STC USB-CDC串口

16.png

1.3    USB-CDC虚拟串口与电脑进行数据传输

用STC-ISP软件中的串口助手打开CDC串口,即可进行数据收发测试

17.png

1.4     STC USB-CDC虚拟串口实现不停电自动ISP下载

由于我们在代码中已经定义了不停电自动ISP下载命令

18.png

我们只需要在下载软件的“收到用户命令后复位到ISP监控程序区”中的进行如下设置,即可实现不停电自动ISP下载功能了。

19.png

USB-CDC-Demo-STC32G.rar


回复
收藏
0



关键词: 超级简单的USB-CDC虚拟串口应用及不停电下载         

suncat0504
专家
2023-04-19 09:23:20      打赏
2楼

厉害了 。抽空试试。谢谢楼主啊!


评论
共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]

深圳SEO优化公司兴安盟建网站报价呼和浩特推广网站九江百度seo大理优化公司贺州网站优化按天收费推荐银川网站排名优化价格河池品牌网站设计报价潮州网站优化软件哪家好鄂州网站seo优化公司洛阳关键词排名平凉百搜标王哪家好沧州品牌网站设计哪家好迪庆SEO按天收费公司合肥百度关键词包年推广福田关键词按天扣费价格长沙百度竞价成都百度seo价格常德网站推广工具推荐荆州关键词按天计费哪家好大运网站推广方案多少钱大连关键词排名包年推广哪家好邯郸seo网站推广推荐和县网站优化按天收费报价铜陵企业网站建设多少钱漳州百搜标王价格坪山网站推广方案公司湘西关键词排名推荐大鹏百度竞价报价天水seo排名推荐岳阳品牌网站设计哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化