阅读:2071回复:10
如何读取pdiusbd12的芯片里固定值?
记得以前有人提到读到12 10说明芯片好使!怎么读啊?
大家帮忙啊! |
|
沙发#
发布于:2004-11-11 10:03
固简里面有一个专门读ID值得函数
你可以用它来完成阿! unsigned short D12_ReadChipID(void) { unsigned short i,j; if(bEPPflags.bits.in_isr == 0) DISABLE; outportb(D12_COMMAND, 0xFD); i=inportb(D12_DATA); j=inportb(D12_DATA); i += (j<<8); if(bEPPflags.bits.in_isr == 0) ENABLE; return i; } 看看返回值是否正确 |
|
|
板凳#
发布于:2004-11-11 10:32
谢谢,好及时啊!
|
|
地板#
发布于:2004-11-11 11:03
再麻烦一下怎么用?
如果读出的是12 10,才对吗? |
|
地下室#
发布于:2004-11-11 16:49
读出的值是0x1210就是对的
你可以写个简单的测试小程序来完成阿 你有仿真器吗?如果有就简单啦,没有的话需要一个指示的量吧 比如if(ID==0x1210)LED=1;//就亮一个小灯之类的 看看Keil c之类的书 祝:成功 |
|
|
5楼#
发布于:2004-11-15 09:26
我用伟福的仿真器,
程序如下: void main(void) { P_HWInit(); D12_ReadChipID(); reconnect_USB(); //联接USB总线 while(1) { usbserve(); //USB服务数据处理 } while(1) DISABLE; } 行吗?我怎么看id 号啊? 多谢了! |
|
6楼#
发布于:2004-11-20 11:59
short nChipId = D12_ReadChipID();
nChipId 就是芯片ID |
|
|
7楼#
发布于:2004-11-22 09:05
谢谢!
分给玩了啊! 把另一帖里都给你,呵呵 |
|
8楼#
发布于:2004-11-22 09:19
我在D12_ReadChipID();下加了short nChipId = D12_ReadChipID();
编译时出现syntax error near 'short' 'nChipId':undefined identifier '=='bad operand type(这是什么意思?) 是需要定义吗? |
|
9楼#
发布于:2004-12-16 10:49
固简里面有一个专门读ID值得函数 if(bEPPflags.bits.in_isr == 0) DISABLE; if(bEPPflags.bits.in_isr == 0) ENABLE 这两句话具体啥意思,那位大侠能不能解释一下,谢谢! |
|
|
10楼#
发布于:2004-12-16 16:23
应该在一个函数的开始就定义变量:
如 int ChipID; 在中间定义会出错。 |
|