智能车制作
标题:
SPI的问题 请大手帮忙
[打印本页]
作者:
gimmooncher
时间:
2010-3-10 19:26
标题:
SPI的问题 请大手帮忙
我自己编了俩个型号为DP512飞思卡尔单片机之间的SPI通信,就是另一个为主机,发送一个十六进制数,另一个从机接收。
在主机上要下载的程序如下(头文件省略):
void SPI_INT(void)
{ SPI0CR1 = 0x5e;
SPI0BR=0X11;
}
void SPI_send(unsigned char senddata)
{
SPI0DR=senddata;
while(SPI0SR_SPTEF==0)
}
void main(void)
{ SPI_INT();
while(1)
{
SPI_send(0XF0);
}
}
要在从机上下载的程序如下:
void SPI_INT(void)
{
SPI0CR1=0x4e;
SPI0BR=0X11;
}
void spi_read(void)
{ while(SPI0SR_SPIF==1)
{
data=SPI0DR;
}
}
void main(void)
{
SPI_INT();
while(1)
{
DDRB=0XFF;
spi_read();
PORTB=data; /连接八个共阳的LED
}
}
结果是灯不亮,就是说没什么反应,不知道是我程序的问题,还是别的问题,主机上的SS管脚接了高电平,从接接地。请各位大手指点!
作者:
verify
时间:
2010-3-10 20:29
DIP512没有用过,不过如果硬件没有问题肯定就是程序问题,不过程序照着数据手册来就可以了
作者:
cnpcshangbo
时间:
2010-5-4 09:05
SPI的收发是同时进行的。不存在像主机程序那样只收不发的情况,那样是的不到数据的。所以在接收时一定要先发送人任意一个数。
作者:
cnpcshangbo
时间:
2010-5-4 09:05
SPI的收发是同时进行的。不存在像主机程序那样只收不发的情况,那样是的不到数据的。所以在接收时一定要先发送人任意一个数。
作者:
zhangjiarui
时间:
2010-11-25 10:13
学习
作者:
zzfei90
时间:
2010-12-3 15:33
还是没懂…
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2