有没有用2410读写93C46的?读不出来数据呢?

[复制链接]
2579|6
 楼主| skylock 发表于 2008-3-26 19:58 | 显示全部楼层 |阅读模式
unsigned&nbsp;int&nbsp;Read(unsigned&nbsp;int&nbsp;Addr)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;iRD;&nbsp;&nbsp;//&nbsp;RD[8]<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_Transmit(0xc0|Addr);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;rSPTDAT0&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(rSPSTA0&0x1));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;iRD&nbsp;=&nbsp;rSPRDAT0;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;iRD;<br />}
 楼主| skylock 发表于 2008-3-27 09:09 | 显示全部楼层

有没有用2410读写93C46的?读不出来数据呢?

难道没有人做过吗?给提个醒,谢谢啦!
twentyone 发表于 2008-3-27 09:24 | 显示全部楼层

问题已经解决

记录:<br /><br />TWENTYONE:<br />单步运行的时候,AXD应该不会去读取SFR的值的。有一种可能是你打开了内存观察窗口,并且地址空间覆盖了SFR的地址,这样每次AXD都会读取SFR。你把内存观察窗口关闭试一试。<br />另外,你单步的时候,执行到接收部分的时候,不要单步运行了,在查询后面一点的位置设置一个断点试一试。这样可以保证接收过程是连续执行的。<br /><br /><br />skylock:<br />没错我是开着内存观察窗口来着,要不我怎么知道他清0了;也就是说,开窗口也就默认要读SFR值了;不开就没事了,以后还得注意一下!恩!<br />这个问题我在21IC和你的forum.h-jtag也发过,请不必再回帖了!谢谢<br /><br /><br />
 楼主| skylock 发表于 2008-3-27 09:43 | 显示全部楼层

有没有用2410读写93C46的?读不出来数据呢?

不对呀,即使全速运行,DO管脚也没有任何数据信号出来呀?这不就是表明,读命令无效吗?读出来的数据全部是0xFF,而里面明明已经写的0xAA了,用别的MCU测试过的。
 楼主| skylock 发表于 2008-3-27 09:50 | 显示全部楼层

有没有用2410读写93C46的?读不出来数据呢?

rSPCON0=(0&lt&lt5)|(1&lt&lt4)|(1&lt&lt3)|(0&lt&lt2)|(0&lt&lt1)|(0&lt&lt0);//Polling,en-SCK,master,low,A,normal&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />SPI选择的查询模式&nbsp;时钟格式A&nbsp;是不是这的问题呀?
 楼主| skylock 发表于 2008-3-27 13:10 | 显示全部楼层

有没有用2410读写93C46的?读不出来数据呢?

93C46的起始位&nbsp;&nbsp;1&nbsp;&nbsp;是否需要放到发送缓冲区里发送,也就是说字节传输操作码就可以了?
 楼主| skylock 发表于 2008-3-27 17:12 | 显示全部楼层

有没有用2410读写93C46的?读不出来数据呢?

还没有解决,顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

33

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部