打印

STM8S SPI

[复制链接]
2280|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gang8013|  楼主 | 2012-7-24 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做了一个SPI与74HC595进行数码管显示,

但是在发送数据时,出现了一个怪事:

SPI_CR1=0B11000110;
SPI_CR2=0B11000011;
SPI_ICR=0B00000000;
SPI_DR=0x00;
for(A=0;A<2;A++)
{_asm("nop");}


while(SPI_SR & 0x02 == 0);
PD_ODR|=0B0001000;
_asm("nop");
PD_ODR&=0B1110111;

问题如下:
SPI_DR=0x00;
后面必须加延时,否则出错。
for(A=0;A<2;A++)
{_asm("nop");}
看了几遍数据手册,也没提到延时,这是为什么呢,
在此加了延时,就正常了!



_asm("nop");
沙发
gang8013|  楼主 | 2012-7-25 19:11 | 只看该作者
经过研究发现:
while(SPI_SR & 0x02 == 0);
仿真器当作无效处理,不知为何,
也就是说,当在发送数据时,也在执行其它的动作。
本来是要发完了再执行的,这样就不好办了

使用特权

评论回复
板凳
20091613310050| | 2013-4-4 20:14 | 只看该作者
你好啊,我最近也准备做SPI与74HC595,能给些指导或者提供些资料参考吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

13

帖子

0

粉丝