[ZLG-ARM] LPC2103的SSP使用遇到怪异问题,请大家帮忙看看~~~有代码

[复制链接]
2251|1
 楼主| djc001 发表于 2008-8-13 00:39 | 显示全部楼层 |阅读模式
初始化的函数:<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPI1INI()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSPCR0=0x0007;&nbsp;//CPOL,CPHA=0,8bit&nbsp;mode,SPI&nbsp;format,scr=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSPCPSR=0x02;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSPCR1=0x0002;&nbsp;<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt16;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&ltDataLength/16;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(SSPSR&0x02==0x00);&nbsp;//tx&nbsp;fifo&nbsp;is&nbsp;full&nbsp;then&nbsp;wait<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSPDR=0x5555;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(SSPSR&0x10==0x00);&nbsp;&nbsp;&nbsp;&nbsp;//wait&nbsp;ssp&nbsp;control&nbsp;not&nbsp;busy<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />有两个疑问:<br />1、手册说SSPSR的bit4&nbsp;0-空闲,但是我用while(SSPSR&0x10!=0x00);程序就会死在这一条;请问下手册有误还是我使用方法不对?<br />2、SSP发送的数据送到外部的移位寄存器,当用SSPDR=0x5555;移位寄存器中的数据就是对的0,1间隔的,但是用SSPDR=0x55;寄存器中的数据就是错的了,MS是全0.请问下怎么这么奇怪呢?<br />感觉SSP用起来不如SPI好用,被折磨的很头疼,谢谢大家帮帮忙。。。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
 楼主| djc001 发表于 2008-8-15 23:06 | 显示全部楼层

while((SSPSR&0x02)==0x00); 居然是因为括号的原因

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

43

帖子

0

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