2812SPI问题--不能发送数据,帮帮我吧

[复制链接]
2746|0
 楼主| huchen_1987 发表于 2009-6-2 17:54 | 显示全部楼层 |阅读模式
首先给SPIDAT赋值,数值随便取的,即SpiaRegs.SPIDAT=0x0505;<br />然后往SPITXBUF循环写数&nbsp;即SpiaRegs.SPITXBUF&nbsp;=&nbsp;i;&nbsp;&nbsp;i--;&nbsp;&nbsp;其中i&nbsp;初值0xFFFF。<br />单步调试程序发现,第一次往SPITXBUF写数时,SpiaRegs.SPISTS.bit.BUFFULL_FLAG由0变为1(正确!)<br />尔后发现该BUFFULL_FLAG始终为1,也就是说SPIDAT中的0x0505没有发送出去。否则等0x0505发送完毕后,我的0xFFFF会自动装入到SPIDAT并使清除BUFFULL_FLAG。<br /><br />SpiaRegs.SPITXBUF&nbsp;=&nbsp;i;已经启动了SPI时钟,<br />寄存器配置:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPICTL.all&nbsp;=&nbsp;0x07;&nbsp;//OVERRUN=0:禁止接受溢出中断;CLK_PHASE=0:无时钟延时;MASTER_SLAVE=1:SPI作为主机;TALK=1:使能数据发送;SPIINTENA=1:使能SPI中断<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPIBRR&nbsp;=&nbsp;0x7f;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//波特率设置<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpiaRegs.SPICCR.all&nbsp;=&nbsp;0x9f;//RESET=1:SPI正常操作;CLKPOLARITY=0:上升沿传输数据;SPICHAR=111:传输字长16位<br /><br />自己觉得寄存器配置都没有问题,为什么数据发送不出去呢,我的SPISIMO引脚是悬空的,事实上也没有用到别的芯片。<br />可能是什么原因,谁帮我分析分析吧╮(╯▽╰)╭&nbsp;先谢谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

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