langshuang
发表于 2023-10-28 11:32:17
电子DIY小家 发表于 2023-10-27 20:52
我是从历程包里复制出来的,你也可以从我的历程包里复制出来
冲哥,我从71项目STC32G-DEMO-CODE-20230309\71-基于HID协议的USB键盘范例\src中复制出来usb.h config.h stc.h 之后还是报错呢
#include "stc.h"
#include "usb.h"
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCIPCM = "@STCISP#";
// port
sfr P4 = 0xc0;
sfr P4M0 = 0xb4;
sfr P4M1 = 0xb3;
sfr P6 = 0xe8;
sfr P6M0 = 0xcc;
sfr P6M1 = 0xcb;
// foot
sbit P40 = P4^0;
sbit P60 = P6^0;
void main()
{
//sys_init()
usb_init();
EA = 1;
P4M0 = 0x00;
P4M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
while(1)
{
P40 = 0;
P60 = 0;
}
}
gentleman
发表于 2023-10-28 13:02:15
langshuang 发表于 2023-10-28 11:32
冲哥,我从71项目STC32G-DEMO-CODE-20230309\71-基于HID协议的USB键盘范例\src中复制出来usb.h config.h...
加这个
langshuang
发表于 2023-10-28 17:17:40
#include "stc.h"
#include "usb.h"
void sys_init();
//USB调试及复位所需定义
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
// port
sfr P4 = 0xc0;
sfr P4M0 = 0xb4;
sfr P4M1 = 0xb3;
sfr P6 = 0xe8;
sfr P6M0 = 0xcc;
sfr P6M1 = 0xcb;
// foot
sbit P40 = P4^0;
sbit P60 = P6^0;
sbit P61 = P6^1;
void main()
{
//sys_init()
usb_init();
EA = 1;
P4M0 = 0x00;
P4M1 = 0x00;
P6M0 = 0x00;
P6M1 = 0x00;
while(1)
{
P40 = 0;
P60 = 0;
P61 = 0;
}
}
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; //设置为准双向口
//设置USB使用的时钟源
IRC48MCR = 0x80; //使能内部48M高速IRC
while (!(IRC48MCR & 0x01));//等待时钟稳定
}
以上代码还是报错 已经添加了那个选项, 我上传整个项目文件了,辛苦冲哥再帮忙看看哪里出错了
langshuang
发表于 2023-10-28 19:14:12
冲哥,71工程编译报这个limit应该怎么解决啊~
langshuang
发表于 2023-10-28 19:15:37
冲哥,我自己写的这个包没有这个变量
/*---------------------------------------------------------------------*/
/* --- STC MCU Limited ------------------------------------------------*/
/* --- STC 1T Series MCU Demo Programme -------------------------------*/
/* --- Mobile: (86)13922805190 ----------------------------------------*/
/* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
/* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
/* --- Web: www.STCMCU.com --------------------------------------------*/
/* --- Web: www.STCMCUDATA.com---------------------------------------*/
/* --- QQ:800003751 -------------------------------------------------*/
/* 如果要在程序中使用此代码,请在程序中注明使用了STC的资料及程序 */
/*---------------------------------------------------------------------*/
/*************功能说明 **************
本例程基于STC32G为主控芯片的实验箱进行编写测试。
使用Keil C251编译器,Memory Model推荐设置XSmall模式,默认定义变量在edata,单时钟存取访问速度快。
edata建议保留1K给堆栈使用,空间不够时可将大数组、不常用变量加xdata关键字定义到xdata空间。
基于HID协议的USB键盘范例
将代码下载到试验箱后即可实现USB键盘的基本功能
跑马灯中的LED17为NumLock灯、LED16为CapsLock灯、LED15为ScrollLock灯
矩阵按键中的KEY0~KEY7分别为键盘中的1~8
下载时, 设置IRC工作频率为 24MHz.
******************************************/
#include "stc.h"
#include "usb.h"
#include "usb_req_class.h"
#include "timer.h"
void sys_init();
void main()
{
sys_init();
usb_init();
timer_init();
EA = 1;
while (1)
{
usb_class_in();
if (f1ms)
{
f1ms = 0;
scan_key();
}
}
}
void sys_init()
{
WTST = 0;//设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
P3M0 &= ~0x03;
P3M1 |= 0x03;
IRC48MCR = 0x80;
while (!(IRC48MCR & 0x01));
USBCLK = 0x00;
USBCON = 0x90;
}
电子DIY小家
发表于 2023-10-30 09:19:30
langshuang 发表于 2023-10-28 19:14
冲哥,71工程编译报这个limit应该怎么解决啊~
软件po解一下
电子DIY小家
发表于 2023-10-30 09:23:04
langshuang 发表于 2023-10-28 19:15
冲哥,我自己写的这个包没有这个变量
这个变量在USB.H里面,你看下你的USB.h文件里有没有他,这个头文件调用了没有
电子DIY小家
发表于 2023-10-30 09:23:52
langshuang 发表于 2023-10-28 17:17
#include "stc.h"
#include "usb.h"
工程参数设置下
langshuang
发表于 2023-10-30 18:58:43
电子DIY小家 发表于 2023-10-30 09:23
工程参数设置下
谢谢冲哥,大佬威武~~~又遇到新问题了,视频里这个bUsbOutReady 这个变量是在哪个头文件里定义的啊,我学到printhelloworld那里报没有定义这个变量
langshuang
发表于 2023-10-30 19:17:09
langshuang 发表于 2023-10-30 18:58
谢谢冲哥,大佬威武~~~又遇到新问题了,视频里这个bUsbOutReady 这个变量是在哪个头文件里定义的啊,我学 ...
找到了 在76项目里