STM8S SPI

[复制链接]
2881|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

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