[ZLG-ARM] 请各位看下lpc2368 ssp1 spi模式

[复制链接]
 楼主| reeper 发表于 2009-4-3 10:43 | 显示全部楼层 |阅读模式
接收函数有什么问题<br />我现在用lpc2368控制ad7716,初始化后在drdy管脚能看到波形,说明初始化可以了,但是接收就是不好使。&nbsp;<br />DWORD&nbsp;SSPInit(void)&nbsp;&nbsp;&nbsp;<br />{&nbsp;<br /><br /><br />&nbsp;&nbsp;&nbsp;BYTE&nbsp;i,&nbsp;Dummy;&nbsp;<br />&nbsp;&nbsp;&nbsp;PCONP&nbsp;|=&nbsp;(1&nbsp;&lt&lt&nbsp;10);&nbsp;<br />//&nbsp;&nbsp;&nbsp;PINSEL0=(1&lt&lt15)|&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt17)|&nbsp;&nbsp;//&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&lt&lt19);&nbsp;&nbsp;&nbsp;//&nbsp;<br />&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;(0x02&nbsp;&lt&lt&nbsp;12)&nbsp;|&nbsp;(0x02&nbsp;&lt&lt&nbsp;14)&nbsp;|&nbsp;(0x02&nbsp;&lt&lt&nbsp;16)&nbsp;|&nbsp;(0x02&nbsp;&lt&lt&nbsp;18);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//p0.7&nbsp;sclk,&nbsp;P0.8&nbsp;&nbsp;miso&nbsp;,P0.9&nbsp;&nbsp;mosi&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;PINSEL1&nbsp;=0X0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//P0.17AS&nbsp;TFS&nbsp;&nbsp;&nbsp;P0.18AS&nbsp;RFS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P0.19&nbsp;AS&nbsp;RST&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;IODIR0&nbsp;&nbsp;&nbsp;=rd_cs&nbsp;|&nbsp;wr_cs&nbsp;|&nbsp;rst;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;IOSET0&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rd_cs&nbsp;|&nbsp;wr_cs;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Set&nbsp;DSS&nbsp;data&nbsp;to&nbsp;8-bit,&nbsp;Frame&nbsp;format&nbsp;SPI,&nbsp;CPOL&nbsp;=&nbsp;0,&nbsp;CPHA&nbsp;=&nbsp;1,&nbsp;and&nbsp;SCR&nbsp;is&nbsp;15&nbsp;*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SSP1CR0&nbsp;=&nbsp;0x0F87;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;SSPCPSR&nbsp;clock&nbsp;prescale&nbsp;register,&nbsp;master&nbsp;mode,&nbsp;minimum&nbsp;divisor&nbsp;is&nbsp;0x02&nbsp;*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SSP1CPSR&nbsp;=&nbsp;0x2;&nbsp;<br /><br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt&nbsp;FIFOSIZE;&nbsp;i++&nbsp;)&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dummy&nbsp;=&nbsp;SSP1DR;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;clear&nbsp;the&nbsp;RxFIFO&nbsp;*/&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Device&nbsp;select&nbsp;as&nbsp;master,&nbsp;SSP&nbsp;Enabled,&nbsp;&nbsp;NO&nbsp;loopback&nbsp;operational&nbsp;mode&nbsp;*/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SSP1CR1&nbsp;|=&nbsp;&nbsp;SSPCR1_SSE;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;TRUE;&nbsp;<br /><br /><br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />void&nbsp;SSP_SendData(BYTE&nbsp;data)&nbsp;<br />{&nbsp;<br />&nbsp;&nbsp;&nbsp;wr_cs_low();&nbsp;<br />&nbsp;&nbsp;&nbsp;while&nbsp;(&nbsp;(SSP1SR&nbsp;&&nbsp;0x02)&nbsp;==&nbsp;0&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待发送FIFO留出空间&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SSP1DR&nbsp;=&nbsp;data;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;((SSP1SR&nbsp;&&nbsp;0x10)&nbsp;==&nbsp;0x10);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待数据帧发送完毕&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wr_cs_high();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;<br /><br />BYTE&nbsp;SSP1Receive(&nbsp;void&nbsp;)&nbsp;<br />{&nbsp;<br />&nbsp;&nbsp;//&nbsp;&nbsp;DWORD&nbsp;i;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;buf;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rd_cs_low();&nbsp;<br />&nbsp;//&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt&nbsp;Length;&nbsp;i++&nbsp;)&nbsp;<br />&nbsp;//&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;SSP1DR&nbsp;=&nbsp;0xAA;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(&nbsp;!(SSP1SR&nbsp;&&nbsp;SSPSR_RNE)&nbsp;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf&nbsp;=&nbsp;SSP1DR;&nbsp;<br />//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf++;&nbsp;<br />&nbsp;//&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rd_cs_high();&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;buf;&nbsp;&nbsp;&nbsp;&nbsp;<br />}
胡刚 发表于 2009-4-6 16:26 | 显示全部楼层

不懂,路过

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

本版积分规则

139

主题

185

帖子

0

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

139

主题

185

帖子

0

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