高级会员
- 积分
- 615
- 威望
- 401
- 贡献
- 114
- 兑换币
- 47
- 注册时间
- 2012-3-5
- 在线时间
- 51 小时
- 毕业学校
- 东北大学
|
5贡献
双机通讯时出错。。。。。。。。求助啊!!先感谢各位亲人啦!!!!
先说下现象啊,主机仅发送,丛机仅接受时,从机接受到得数据并不完全准确!!!会出错。。。。
下面是代码。。
主机:#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;}}
}
}
********************************************************************************
***********************************************************************************
另外,如果要想实现每个机子都能接受发送的话,如何编写啊????将我的程序中注释部分/*.......*/的加进去后,程序就都不能执行了饿?!!!!!!!!!!怎么回事啊?
哪位大侠帮帮忙啊!!跪谢啦!!!!!!!!
|
|