智能车制作
标题:
spi双机通讯,求救!!!!!!!!
[打印本页]
作者:
快乐还是忧伤
时间:
2012-4-21 20:43
标题:
spi双机通讯,求救!!!!!!!!
双机通讯时出错。。。。。。。。求助啊!!先感谢各位亲人啦!!!!
先说下现象啊,主机仅发送,丛机仅接受时,从机接受到得数据并不完全准确!!!会出错。。。。
下面是代码。。
主机:#include <hidef.h>
#include "derivative.h"
void SPI_Write_Byte();
void SPI_INIT();
void PLL_INIT();
int i=1;
extern char data[5],data2,k=0;
void main(void)
{
PTS=0XFF;/* put your own code here */
DDRB=0XFF;
PORTB=0X55;
PLL_INIT();
SPI_INIT();
DDRS=0XFF;
EnableInterrupts;
for(;;)
{
SPI_Write_Byte ();
} }
void PLL_INIT()
{
CLKSEL_PLLSEL=0;
POSTDIV=0;
SYNR=0x44;
REFDV=0x81;
while(!CRGFLG_LOCK);
CLKSEL_PLLSEL=1;
}
void SPI_INIT()
{
MODRR_MODRR4=0;
(void)SPI0SR;
(void)SPI0DR;
SPI0CR1=0X56;
SPI0CR2=0X10;
SPI0BR=0X12;
}
void SPI_Write_Byte()
{
char j=0;
char data[5]={85,100,125,15,18};
while(!(SPI0SR_SPTEF));
SPI0DR =data[k];
k++;
if(k==4) {
k=0;}
for(j=0;j<=0xfff0;j++) {
if(SPI0SR_SPTEF)
PORTB=0XFF;
}
}
/*void SPI_GET_byte()
{
char k=0;
for (k=0;k<=0xffff;k++)
{
if(SPI0SR_SPIF)
{
data2=SPI0DR;
}}} */
**************************************************************************
***************************************************************************
从机:
#include <hidef.h>
#include "derivative.h"
void SPI_GET_byte() ;
void SPI_INIT();
void PLL_INIT();
char data=0,data2=0;extern j=0;
void main(void)
{
PTM=0XFF;/* put your own code here */
DDRB=0XFF;
PORTB=0X55;
PLL_INIT();
SPI_INIT();
EnableInterrupts;
for(;;)
{
SPI_GET_byte() ;
}
} /* loop forever */
/* please make sure that you never leave main */
void PLL_INIT()
{
CLKSEL_PLLSEL=0;
POSTDIV=0;
SYNR=0x44;
REFDV=0x81;
while(!CRGFLG_LOCK);
CLKSEL_PLLSEL=1;
}
void SPI_INIT()
{
MODRR_MODRR4=1;
(void)SPI0SR;
(void)SPI0DR;
SPI0CR1=0X46;
SPI0CR2=0X10;
SPI0BR=0X12;
}
/*void SPI_Write_Byte()
{
char j=0;
while(!(SPI0SR_SPTEF));
data=35;
SPI0DR =data;
for(j=0;j<=0xfff0;j++)
if(SPI0SR_SPTEF)
PORTB=0XFF;
}
*/
void SPI_GET_byte()
{
char k=0,data2[5];
for (k=0;k<=0xfff0;k++)
{
if(SPI0SR_SPIF)
{
data2[j]=SPI0DR;
j++;
if(j==4) {
j=0;}}
}
}
********************************************************************************
***********************************************************************************
另外,如果要想实现每个机子都能接受发送的话,如何编写啊????将我的程序中注释部分/*.......*/的加进去后,程序就都不能执行了饿?!!!!!!!!!!怎么回事啊?
哪位大侠帮帮忙啊!!跪谢啦!!!!!!!!
作者:
快乐还是忧伤
时间:
2012-4-22 07:54
好吧,自己先顶下,各位加油啊!!!!!!!要不给个例程也行哈
作者:
linping9656
时间:
2012-8-23 23:04
我想用K60的SPI 现在还不会用 纠结了
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2