打印

求解 圈圈USB程序中的问题

[复制链接]
2518|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
水弟不水|  楼主 | 2012-5-13 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/******************************************************************
   本程序只供学习使用,未经作者许可,不得用于其它任何用途


        欢迎访问我的USB专区:http://group.**/93/
        欢迎访问我的blog:   http://www.**/blog/computer00
                             http://computer00.21ic.org

        感谢PCB赞助商——电子园: http://bbs.cepark.com/

UsbCore.h file

作者:电脑圈圈
建立日期: 2008.06.29
修改日期: 2008.07.10
版本:V1.1
版权所有,盗版必究。
Copyright(C) 电脑圈圈 2008-2018
All rights reserved            
*******************************************************************/

#ifndef __USBCORE_H__
#define __USBCORE_H__

#define GET_STATUS         0
#define CLEAR_FEATURE      1
#define SET_FEATURE        3
#define SET_ADDRESS        5
#define GET_DESCRIPTOR     6
#define SET_DESCRIPTOR     7
#define GET_CONFIGURATION  8
#define SET_CONFIGURATION  9
#define GET_INTERFACE      10
#define SET_INTERFACE      11
#define SYNCH_FRAME        12

#define DEVICE_DESCRIPTOR         1
#define CONFIGURATION_DESCRIPTOR  2
#define STRING_DESCRIPTOR         3
#define INTERFACE_DESCRIPTOR      4
#define ENDPOINT_DESCRIPTOR       5
#define REPORT_DESCRIPTOR         0x22

#define SET_IDLE 0x0A

void UsbDisconnect(void); //USB断开连接
void UsbConnect(void);    //USB连接
void UsbBusSuspend(void); //总线挂起中断处理
void UsbBusReset(void);   //总线复位中断处理
void UsbEp0Out(void);     //端点0输出中断处理
void UsbEp0In(void);      //端点0输入中断处理
void UsbEp1Out(void);     //端点1输出中断处理
void UsbEp1In(void);      //端点1输入中断处理
void UsbEp2Out(void);     //端点2输出中断处理
void UsbEp2In(void);      //端点2输入中断处理

extern uint8 ConfigValue;  //当前配置值
extern uint8 Ep1InIsBusy;  //端点1输入是否忙

#endif

相关帖子

沙发
水弟不水|  楼主 | 2012-5-13 17:16 | 只看该作者
上面中没有定义uint8  为什么就可以使用呢?这是圈圈的程序 。但是在我的程序中就一定要加上mytype.h这个头文件才能用

使用特权

评论回复
板凳
l_lin2003| | 2012-5-28 10:01 | 只看该作者
extern uint8 ConfigValue;  //当前配置值
extern uint8 Ep1InIsBusy;  //端点1输入是否忙

只是一个声明吧,不是定义,不用加

至于你的为什么加,是不是因为其他原因,
(1)比如在.c文件中使用了自定义变量类型,你没包含mytype.h
(2)你在.h中定义变量了

使用特权

评论回复
地板
水弟不水|  楼主 | 2012-6-3 20:49 | 只看该作者
我在.h中绝对没定义变量,且.c文件包含pdi12.h头文件,pdi12.h头文件包含mytype.h头文件。这样.c文件就包含mytype.h头文件了吧。所以你说的两个原因都不成立

使用特权

评论回复
5
水弟不水|  楼主 | 2012-6-4 08:09 | 只看该作者
我回去查了下错误,我的UsbCore.h和圈圈的一样没有变化的,为何会出现这种错误呢?
USBCORE.H(47): error C129: missing ';' before 'Ep1InIsBusy'这是我在USBCORE.H头文件没加mytype.h头文件出现的错误。加了mytype.h后,文件就没有错误了。
我把我的UsbCore.h头文件复制到圈圈的程序中是可以的,但是把圈圈的UsbCore.h头文件复制到我的程序就不行了。后来发现是UsbCore.c文件有差异,但是在UsbCore.c中我定义的变量更圈圈都一样啊,没有哪里不同。下面是我定义的变量:
uint8 Ep1InIsBusy;
uint8 ConfigValue;

使用特权

评论回复
6
JC.Wang| | 2012-6-12 15:29 | 只看该作者
圈圈的好好像是用51做的USB驱动吧??有没有用STM32做的USB驱动的从零入门呢???例程实在是看不懂呀

使用特权

评论回复
7
21learner| | 2018-12-25 16:02 | 只看该作者
mytype.h文件里 规定了,对变量字节大小的定义。故你最好在每个.c 文件中都加入 mytype.h。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

16

帖子

0

粉丝