FSL AW60 SPI发送数据,怎么获取已发送状态(不是SPTEF=1哦)?

[复制链接]
 楼主| jatkai 发表于 2008-11-28 19:29 | 显示全部楼层 |阅读模式
TE, spi, ICL, ic, pic
FSL&nbsp;AW60&nbsp;SPI发送数据,怎么获取已发送完状态(不是SPTEF=1哦)?也就是发送后检查那个标志位表示发送完毕,然后将CS置高.<br /><br />这个问题有很多人肯定会回答等待SPTEF为1就是发送完毕,其实我已做过实验了,用视波器看了几个相关信号.<br />事实上,SPETF为1后只是表示你可以往SPI的发送缓冲区送数据,而此刻SPICLK和SPIMOSI依然在发未发生的数据位.<br /><br />我查看数据手册很久,好像并没有那个标志位来指明SPI发送数据位全部完成的标志.<br /><br />我现在暂时是通过检测SPICLK的维持常态时间来确认发送完毕与否.<br /><br />但总觉得不爽,请那位高手解决一下.<br /><br />
张明峰 发表于 2008-11-28 22:35 | 显示全部楼层

就是SPETF,毫无疑问

你的疑虑只是因为简单的顺序错误而造成的,别钻牛角尖。
 楼主| jatkai 发表于 2008-11-29 10:01 | 显示全部楼层

毫无钻牛之意!张先生!请帮忙看下代码,附上图说明.请帮指出

&nbsp;&nbsp;&nbsp;&nbsp;/*初始化SPI&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CS&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPI1C1&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI1C2&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;BUSclk&nbsp;=&nbsp;4MHz<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SPIClk&nbsp;=&nbsp;4M/2/2&nbsp;=&nbsp;1MHz<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI1BR&nbsp;=&nbsp;0x10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//--------------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;SPE&nbsp;=&nbsp;1&nbsp;使用SPI接口<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;MSTR&nbsp;=&nbsp;1&nbsp;SPI为主模式<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;CPHA=0,CPOL=0&nbsp;时钟线平常为低电平,接收数据时在SPICLK的上<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;升沿读取数据<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;LSBFE=1,低位先传&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI1C1&nbsp;=&nbsp;0x51;<br />&nbsp;&nbsp;&nbsp;&nbsp;(void)(SPI1S&nbsp;==&nbsp;0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CS&nbsp;=&nbsp;1;<br /><br /><br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*向SPI发送数据&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;CS&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//temp&nbsp;=&nbsp;SPI1S;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(!SPI1S_SPTEF);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI1D&nbsp;=&nbsp;port;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(!SPI1S_SPTEF);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//temp&nbsp;=&nbsp;SPI1S;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;SPI1D&nbsp;=&nbsp;sendData;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(!SPI1S_SPTEF);&nbsp;&nbsp;&nbsp;<br />&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;CS&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;此刻SPIEF已为1,如果置高CS那么如图所示.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;数据还没有完全发送完,CS就变为高电平<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://D:Backup我的文档SPI时序.bmp">
 楼主| jatkai 发表于 2008-11-29 10:11 | 显示全部楼层

真是水,到现在我还不知怎么上传图片?请那位帮手说一下

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

本版积分规则

20

主题

36

帖子

0

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

20

主题

36

帖子

0

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