新手上路
- 积分
- 27
- 金钱
- 27
- 注册时间
- 2016-3-6
- 在线时间
- 9 小时
|
主函数
#include "NRF24L01.H"
unsigned long i;
unsigned char status;
unsigned char Tx_Buf1[8] = {'A','B','C','D','E','F','G','H'};
unsigned char RX_BUF_DATA[24] = {0};
void main()
{
int i = 0;
CE = 0;
SCK = 0;
CSN = 1;
Serial_Init();//初始化串口
//发送 模式代码
#if MODE
TX_Mode();
Delay(100);
while(1)
{
Transmit(Tx_Buf1);
while(CheckACK());
P1 &= 0xfe;
Delay(100);
}
//接收代码
#else
RX_Mode();
Delay(100);//防止编译警告
while( 1 )
{
{
if(nRF24L01_RxPacket(Rx_Buf))
{
Serial_SendString(Rx_Buf);
}
}
}
#endif
}
void ser() interrupt 4
{
static char i = 0;
ES=0;
if(RI)
{
RI=0;
Tx_Buf=SBUF;
i++;
if ( 8 == i )
{
i = 0;
SerialRevFlag = 1;
}
}
ES=1;
}
本来应该循环收到的是ABCDEFGH......,但实际上收到的是ABCDEFGH HHHHHHHH HHHHHHHH HHHHHHHH.....,不知道程序到底哪儿有问题
头文件里的一些函数定义如下:
void Serial_Init(void)
{
TMOD=0x20; //用定时器设置串口波特率
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1; //串口初始化
SM0=0;
SM1=1;
EA=1; //开启总中断
ES=1;
}
void Serial_SendChar(uchar date)
{
ES=0;
SBUF=date; //发送数据a到SBUF,即将单片机的数据发送到计算机
while(!TI);
TI=0;
ES=1;
}
|
|