[ZLG-ARM] 请教关于LPC213x的SPI口的使用

[复制链接]
2028|2
 楼主| mcuatmel 发表于 2007-4-25 08:26 | 显示全部楼层 |阅读模式
用SPI对一器件做读写操作,过程如下:<br />#define&nbsp;SPI0_CS&nbsp;=&nbsp;(1&lt&lt24)<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0x00005500;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置SPI管脚连接<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL1&nbsp;=&nbsp;0x00000000;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;IO1DIR&nbsp;=&nbsp;SPI0_CS;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1SET&nbsp;=&nbsp;SPI0_CS;<br />&nbsp;&nbsp;&nbsp;&nbsp;S0PCCR&nbsp;=&nbsp;0x52;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置SPI时钟分频,&nbsp;初始化SPI接口<br />&nbsp;&nbsp;&nbsp;&nbsp;S0PCR=0x38;//下降沿发送,上升沿接收<br /><br />void&nbsp;SPI0_WR8(uint8&nbsp;Addr,uint8&nbsp;Dta)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1CLR=SPI0_CS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0PDR&nbsp;=&nbsp;Addr|0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;0==(S0PSR&0x80)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0PDR&nbsp;=&nbsp;Dta;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;0==(S0PSR&0x80)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1SET|=SPI0_CS;<br />}<br />uint8&nbsp;SPI0_RD8(uint8&nbsp;Addr)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;u8temp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1CLR=SPI0_CS;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0PDR&nbsp;=&nbsp;Addr;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;0==(S0PSR&0x80)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S0PDR&nbsp;=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;0==(S0PSR&0x80)&nbsp;);<br />&nbsp;&nbsp;&nbsp;&nbsp;u8temp=S0PDR;<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1SET|=SPI0_CS;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(u8temp);<br />}<br /><br />我先向器件的可读写寄存器中写入数据后再读怎么读不出来?<br />
zlgARM 发表于 2007-4-25 22:02 | 显示全部楼层

mcuatmel

不知道你的器件对CS的时序要求。<br /><br />请您再看一下。<br /><br />还要注意,器件返回数据是在什么时候。<br /><br /><br />
 楼主| mcuatmel 发表于 2007-4-26 11:17 | 显示全部楼层

时序如下

CS:为低有效,这一点和其它常见器件一样<br />数据传输:MCU这一边在时钟的下降沿发送数据有效,上升沿返回数据有效。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

512

主题

1456

帖子

2

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