-
感觉还是不错的资料
-
我3.30都用两个多月了吧,我是个总是喜欢尝试新事物的人,从2.03 到3.0再到3.3.0,版本更新说明在自带的说明文件里全都有说明,st虽然datasheet不咋样,但这个库还是不错的
-
而且我把文件放到vs2005上编译是可以生成dll文件的,郁闷啊
-
引用 3 楼 veabol 的回复:
可能是endpoint等一些信息、寄存器在切换的时候没有清掉,USB在切换的时候会调用UfnPdd_Star()和UfnPdd_Stop()函数,你从这两个函数开始追踪一下,看哪里有问题。
好,我一直以为是注册表那里设错了,一直在该,也没弄好。明天我去这么弄弄,看看是那里出问题了。但是弱问一句,要是没清掉应该再怎么搞呢?
-
[url=http://whitefox.qupan.com/6376716.html][/url] 图在这个链接里 是PDF格式的 之前已经存到网络硬盘里了。
-
1,蓝牙通过什么和CPU进行通信的我都不知道,呵呵。
2,这个注册表些什么,除了那些必须要写上去的。和驱动也有很大关系。驱动也许需要通过注册表判断一些东西。
3,如果信号频率相同天线应该可以共用吧。当wifi工作的时候只要将其他需要使用这个天线的模块下电应该就可以吧。
跟着这个帖子一起学习一下。等待高手来~
-
学习了,顺便问一下,第三方元件库是指除了protues自带的元件库之外的库吗?
-
学习了
-
这是个啥子哟/
-
程序配置如下:
TIM2 -> PSCR = 0X03;//预分频为1:8
TIM2 -> CCMR3 = 0B00110001;//配置采样频率与采样次数,采样时预分频,捕获通道。
TIM2 -> CCER2 = 0B00000001;//捕获上升沿,并使能。
TIM2 -> IER = 0B00001000;//使能中断。
-
想要炫的效果,就不要用CE系统提供的控件
一切都自己通过DC来绘制
还有一个,需要好的UI设计来支持,否则是不可能有好的效果的
-
加油
-
引用 2 楼 mjh2000 的回复:
选了爱晶
不要付款,别买了。性价比低。
-
引用 3 楼 frank_zhou 的回复:
windML其实还是比较简单的了,其支持好多操作系统的
windML支持Windows吗?
-
我想试试能不能在有环境影响的情况下正常通信.....
-
LS正解
-
引用 17 楼 lin0119 的回复:
平时从来没有用过函数指针,请问一下jiqiang01234:
如果这些函数队列里面返回值不同
unsigned int Func1();
unsigned char* Func2();
..........
要什么写?谢谢!
c语言中void*类型可是个好东西,可以说是最高层的抽象数据类型了。根据你的想法,实现存储没问题,但调用就麻烦一点了,因为得分拣出不同函数的不同返回值。注意:我使用的函数返回值是用参数来实现的。
大致代码如下:
void Func1(void* lpParameter)
{
*(int*)lpParameter = 100;
}
void Func2(void* lpParameter)
{
*(char*)lpParameter = 'c'
}
...
void FuncN(void* lpParameter)
{
//TYPE为自定义的数据类型
*(TYPE*)lpParameter = userType;//自定义的数据类型可能是结构体,需要对每个成员单独赋值,这里省略
}
typedef void* (*FUNC)(LPVOID lpParameter);
typedef enum tagRETURNTYPE
{
FUNC_INT,
FUNC_CHAR,
...
FUNC_USER_TYPE,
}RETURNTYPE;
typedef struct tagFUNCINFO
{
FUNC pfn;
RETURNTYPE ReturnType;
}FUNCINFO;
const FUNCINFO g_FuncInfoTable[] =
{
{(Func1, FUNC_INT},
{(Func2, FUNC_CHAR},
...
{{FuncN, FUNC_USER_TYPE},
};
unsigned char TableSize = sizeof(g_FuncTable) / sizeof(g_FuncTable[0]);
unsigned char i = 0;
int iRet = 0;
char cRet = 0;
TYPE userType;
for(i = 0; i < TableSize; i++)
{
switch(g_FuncInfoTable[i].ReturnType)
{
case FUNC_INT:
(*g_FuncInfoTable[i].pfn)(&iRet);
break;
case FUNC_CHAR:
(*g_FuncInfoTable[i].pfn)(cRet);
break;
...
...
case FUNC_USER_TYPE:
(*g_FuncInfoTable[i].pfn)(&userType);
break;
default:
break;
}
}
复制代码
注意:在函数中返回指针的行为一定要谨慎,尤其不能返回局部变量的地址。因此我的例子里没有列出返回unsigned char*的情况。
-
看MDD层的代码这个removeable 对整体影响不大啊,应该仅仅是PC机上显示移动磁盘还是本地磁盘的区别。
-
两段ddk里的关于IOCreateDeive()中关于device name 参数原文,以及microsoft 关于如何name a device driver, 相信看了你就释然了。
驱动开发还是很有qian途的。加油。
1. “DeviceName ()
Optionally points to a buffer containing a zero-terminated Unicode string that names the device object. The string must be a full path name.
Typically, only physical device objects (PDOs), which are created by PnP bus drivers, are named. PnP function drivers and filter drivers should not specify a DeviceName for a functional device object (FDO) or filter device object (filter DO). Naming an FDO or filter DO bypasses the PnP Manager's security. If a user-mode component needs a symbolic link to the device, the function or filter driver should register a device interface (see IoRegisterDeviceInterface ). If a kernel-mode component needs a legacy device name, the driver must name the FDO, but naming is not recommended. "
2."
IoCreateDevice can only be used to create an unnamed device object, or a named device object for which a security descriptor is set by an INF file. Otherwise, drivers must use IoCreateDeviceSecure to create named device objects.
"
-
1, 如果没有中文安装包就输入不了,
2, Emulator限制比较多