| 
 
新手上路 
 
	积分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;
 }
 
 
 | 
 |