[ZLG-ARM] 请问哪位同行用LPC2138的SPI读写过SC16IS750,我读出来全是FF。

[复制链接]
3045|0
 楼主| lw2008 发表于 2008-9-24 10:39 | 显示全部楼层 |阅读模式
请问哪位同行用LPC2138的SPI读写过SC16IS750,我写入各寄存器读出来全是FF。<br /><br />LPC2138的SPI读写SC16IS750(SPI转串口)<br />SC16IS750的CS置低,SPI选择脚步也置低。<br /><br />SC16IS750写寄存器数据,我求16位连续写,但2138的SPI控制器数据只能8位写.<br />2138能否16位连续写.<br /><br />寄存器测试读写如下。<br />void&nbsp;&nbsp;MSPI_Init(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;&nbsp;&nbsp;=&nbsp;(PINSEL0&nbsp;&&nbsp;0xffff00ff)&nbsp;|&nbsp;0x5500;&nbsp;&nbsp;//&nbsp;选择管脚为SPI口&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_SPCCR&nbsp;=&nbsp;0x52;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置SPI时钟分频&nbsp;&nbsp;8<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_SPCR&nbsp;&nbsp;=&nbsp;(0&nbsp;&lt&lt&nbsp;3)&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CPHA&nbsp;=&nbsp;0,&nbsp;数据在SCK&nbsp;的第一个时钟沿采样<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&nbsp;&lt&lt&nbsp;4)&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CPOL&nbsp;=&nbsp;1,&nbsp;SCK&nbsp;为低有效<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1&nbsp;&lt&lt&nbsp;5)&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;MSTR&nbsp;=&nbsp;1,&nbsp;SPI&nbsp;处于主模式<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;6)&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;LSBF&nbsp;=&nbsp;0,&nbsp;SPI&nbsp;数据传输MSB&nbsp;(位7)在先<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0&nbsp;&lt&lt&nbsp;7);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SPIE&nbsp;=&nbsp;0,&nbsp;SPI&nbsp;中断被禁止<br />}<br /><br />uint8&nbsp;&nbsp;MSPI_SendData(uint8&nbsp;data)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI_SPDR&nbsp;=&nbsp;data;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(&nbsp;0&nbsp;==&nbsp;(SPI_SPSR&nbsp;&&nbsp;0x80));&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待SPIF置位<br />&nbsp;&nbsp;&nbsp;&nbsp;return(SPI_SPDR);<br />}<br /><br />void&nbsp;SPI_TEST2(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;i,u1,u2,temp,uCmd[12]={x1,0x2,0x3,0x4,0x4,0x5,0x6,0x7,0x8,0x9};<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt&nbsp;10;&nbsp;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u1&nbsp;=&nbsp;uCmd&nbsp;&lt&lt&nbsp;3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u2&nbsp;=&nbsp;u1&nbsp;&&nbsp;0x7F;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;MSPI_SendData(u2);&nbsp;&nbsp;//&nbsp;写SPI<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;MSPI_SendData(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;u2&nbsp;=&nbsp;u1&nbsp;|&nbsp;0x80;;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp&nbsp;=&nbsp;MSPI_SendData(u2);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

296

帖子

0

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