打印

关于CYSteam例程的解释

[复制链接]
1902|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
luooove|  楼主 | 2013-6-21 18:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
  我在使用CYSteam例程来测速速度的时候一直出现了一个问题,下载固件程序后,在设备管理器中能够看到该驱动已经正常安装了,但是在console或者是官方提供的CYSteam中无法识别。一直以为是驱动的程序的问题。但是我利用购买的开发板就没有这个问题。因此也较难判断是不是驱动的的问题。
  后来我在调试数码管显示的时候发现不能显示(我的电路是参考官方的),应该在硬件电路没有问题呢。然后就分析是程序的问题。特别是I2C的问题。于是乎仔细看了PCF8574的文档,发现在I2C操作中的地址会因为芯片型号的不同而不同。如图所示。应该来说为40(41)或者为70(71)但是程序中为#define BTN_ADDR                0x20#define LED_ADDR                0x21。。。。出现差别。通过仔细分析这个芯片的读写时序,发现官方写的时候的没有把最低位的读写标志也加入,而是直接用了函数的方式。        EZUSB_WriteI2C(LED_ADDR, 0x01, &(Digit[num]));这样正好能解释为什么是20和21.根据这一点,我对地址进行改写,为#define BTN_ADDR                0x38
#define LED_ADDR                0x39。。。通过测试正好能够显示数码管。而CYSteam改动了这一点后也能够正常的被console和官方提供CYSTteamer识别。

总结:由于固件程序中I2C的部分没有与实际的芯片对应而导致无法识别。此外在使用芯片的时候特别要注意芯片的厂家与芯片的尾号。

相关帖子

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

本版积分规则

4

主题

17

帖子

1

粉丝