- #include "stc32g.h"
- #include "usb.h"
-
- #define FOSC 24000000UL
-
- //USB调试及复位所需定义
- char *USER_DEVICEDESC = NULL;
- char *USER_PRODUCTDESC = NULL;
- char *USER_STCISPCMD = "@STCISP#"; //设置自动复位到ISP区的用户接口命令
-
- void Delay1000ms() //@24.000MHz
- {
- unsigned long i;
-
- _nop_();
- _nop_();
- i = 5999998UL;
- while (i) i--;
- }
-
- void sys_init();
-
- void main()
- {
- sys_init();
- usb_init();
- // EUSB=1;
- EA=1;
- while(1)
- {
- P20=!P20;
- P21=!P21;
- P21=!P21;
- Delay1000ms();
- }
-
- }
-
- void sys_init()
- {
- WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
- EAXFR = 1; //扩展寄存器(XFR)访问使能
- CKCON = 0; //提高访问XRAM速度
-
- P0M1 = 0x30; P0M0 = 0x30; //设置P0.4、P0.5为漏极开路(实验箱加了上拉电阻到3.3V)
- P1M1 = 0x32; P1M0 = 0x32; //设置P1.1、P1.4、P1.5为漏极开路(实验箱加了上拉电阻到3.3V), P1.1在PWM当DAC电路通过电阻串联到P2.3
- P2M1 = 0x3c; P2M0 = 0x3c; //设置P2.2~P2.5为漏极开路(实验箱加了上拉电阻到3.3V),设置开漏模式需要断开PWM当DAC电路中的R2电阻
- P3M1 = 0x50; P3M0 = 0x50; //设置P3.4、P3.6为漏极开路(实验箱加了上拉电阻到3.3V)
- P4M1 = 0x3c; P4M0 = 0x3c; //设置P4.2~P4.5为漏极开路(实验箱加了上拉电阻到3.3V)
- P5M1 = 0x0c; P5M0 = 0x0c; //设置P5.2、P5.3为漏极开路(实验箱加了上拉电阻到3.3V)
- P6M1 = 0xff; P6M0 = 0xff; //设置为漏极开路(实验箱加了上拉电阻到3.3V)
- P7M1 = 0x00; P7M0 = 0x00; //设置为准双向口
-
- P3M0&= ~0x03; //P3.0/P3.1和USB的D-/D+共用PIN脚,
- P3M1|= 0x03; //需要将P3.0/P3.1设置为高阻输入模式
-
- //设置USB使用的时钟源
- IRC48MCR = 0x80; //使能内部48M高速IRC
- while (!(IRC48MCR & 0x01)); //等待时钟稳定
- USBCLK=0x00;//HID模式有这这2条语句好像也没有什么问题
- USBCON=0x90;
- }
-
复制代码
程序里面HID模式和CDC模式有这2条都可以,只是添加的库不一样,不知道也没有什么问题?
USBCLK=0x00;//HID模式有这这2条语句好像也没有什么问题
USBCON=0x90; |