[ZLG-ARM] 请教S0SPDR的问题

[复制链接]
1771|3
 楼主| linhai1986 发表于 2010-2-23 12:20 | 显示全部楼层 |阅读模式
我使用的是LPC2378,我用以下程序会出现在while处死循环的情况
SPISndByte(uint8 data)
{
    CS_LOW();
    S0SPDR = data;
    while(0==(S0SPSR & 0x80));
    CS_HIGH();
}




然后改成以下方式收发一切正常:
SPISndByte(uint8 data)
{uint8 i=0;
    CS_LOW();
    S0SPDR = data;
    while((0==(S0SPSR & 0x80))&&(++i<200));
    CS_HIGH();
}
想请教为什么S0SPSR有时候一直处于忙状态?

xiaoxin1986 发表于 2010-2-23 12:31 | 显示全部楼层
while(0==(S0SPSR & 0x80));
不是等待数据发送完毕吗
 楼主| linhai1986 发表于 2010-2-23 16:45 | 显示全部楼层
是 啊,但是不用发这么长时间吧
liliang9554 发表于 2010-2-23 23:03 | 显示全部楼层
不懂,帮顶了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

172

主题

1451

帖子

0

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