lyd519a
驱动牛犊
驱动牛犊
  • 注册日期2004-08-25
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2071回复:10

如何读取pdiusbd12的芯片里固定值?

楼主#
更多 发布于:2004-11-11 09:52
记得以前有人提到读到12 10说明芯片好使!怎么读啊?
大家帮忙啊!
shenshaoxiang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-27
  • 最后登录2009-04-03
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于: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;
}
看看返回值是否正确
向大家学习,知识的获得来自于理论,实践和交流。
lyd519a
驱动牛犊
驱动牛犊
  • 注册日期2004-08-25
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-11 10:32
谢谢,好及时啊!
lyd519a
驱动牛犊
驱动牛犊
  • 注册日期2004-08-25
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-11 11:03
再麻烦一下怎么用?
如果读出的是12 10,才对吗?
shenshaoxiang
驱动牛犊
驱动牛犊
  • 注册日期2004-08-27
  • 最后登录2009-04-03
  • 粉丝0
  • 关注0
  • 积分69分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-11 16:49
读出的值是0x1210就是对的
你可以写个简单的测试小程序来完成阿
你有仿真器吗?如果有就简单啦,没有的话需要一个指示的量吧
比如if(ID==0x1210)LED=1;//就亮一个小灯之类的
看看Keil c之类的书
祝:成功
向大家学习,知识的获得来自于理论,实践和交流。
lyd519a
驱动牛犊
驱动牛犊
  • 注册日期2004-08-25
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-15 09:26
我用伟福的仿真器,
程序如下:

void main(void)
{
  P_HWInit();


  D12_ReadChipID();
  reconnect_USB(); //联接USB总线


  while(1)
  {

      usbserve(); //USB服务数据处理
  }

  while(1) DISABLE;
  
}
行吗?我怎么看id 号啊?
多谢了!
tase
驱动小牛
驱动小牛
  • 注册日期2002-03-10
  • 最后登录2015-01-23
  • 粉丝0
  • 关注0
  • 积分494分
  • 威望74点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-20 11:59
short nChipId = D12_ReadChipID();

nChipId  就是芯片ID
--- TASE ---
lyd519a
驱动牛犊
驱动牛犊
  • 注册日期2004-08-25
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-22 09:05
谢谢!
分给玩了啊!
把另一帖里都给你,呵呵
lyd519a
驱动牛犊
驱动牛犊
  • 注册日期2004-08-25
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-11-22 09:19
我在D12_ReadChipID();下加了short nChipId = D12_ReadChipID();
编译时出现syntax error near 'short'
          'nChipId':undefined identifier
           '=='bad operand type(这是什么意思?)
是需要定义吗?
chen036066182
驱动牛犊
驱动牛犊
  • 注册日期2004-12-13
  • 最后登录2006-08-10
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-12-16 10:49
固简里面有一个专门读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;
}
看看返回值是否正确

if(bEPPflags.bits.in_isr == 0)
DISABLE;
if(bEPPflags.bits.in_isr == 0)
ENABLE
这两句话具体啥意思,那位大侠能不能解释一下,谢谢!
cuihua
hxg117
驱动牛犊
驱动牛犊
  • 注册日期2004-12-03
  • 最后登录2005-01-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-12-16 16:23
应该在一个函数的开始就定义变量:
如 int ChipID;

在中间定义会出错。

游客

返回顶部