久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1911|回復: 0
打印 上一主題 下一主題
收起左側

關于avr單片機驅動NRF24L01的問題 這個程序有錯嗎?

[復制鏈接]
跳轉到指定樓層
樓主
ID:161910 發表于 2017-1-21 21:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這個程序有錯嗎?
#include<iom16v.h>
#include<macros.h>
#define NULL 0

#define DDR DDRB
#define PORT PORTB

#define CE 3
#define SS 4
#define MOSI 5
#define MISO 6
#define SCK 7

#define CE_1 PORT|=(1<<CE)
#define CE_0 PORT&=~(1<<CE)
#define SS_1 PORT|=(1<<SS)
#define SS_0 PORT&=~(1<<SS)

#define R_REG 0x00
#define W_REG 0x20
#define R_DATA 0x61
#define W_DATA 0xA0
#define FLUSH_TX 0xE1
#define FLUSH_RX 0xE2

#define CONFIG 0x00
#define EN_AA 0x01
#define EN_RXADDR 0x02
#define RF_CH 0x05
#define RF_SETUP 0x06
#define STATUS 0x07
#define RX_ADDR_P0 0x0A
#define TX_ADDR 0x10
#define RX_PW_P0 0x11

void delay_us(unsigned int Xus)
{
if(Xus==0)
  return;
while(--Xus);
}

void delay_ms(unsigned int Xms)
{
unsigned int j;
while(Xms--)
for(j=0;j<1140;j++);
}

int PORT_init()
{
DDRA=0xFF;
DDR=(1<<CE)|(1<<SS)|(1<<MOSI)|(1<<SCK);      //Output:CE,SS,MOSI,SCK;input:MISO;
PORT=(1<<SS);                                //Stop tranmission;
}

void SPI_init()
{
SPSR=0x01;                                   //Double speed;
SPCR=0x51;                                   //Enable SPI,master;
}

unsigned char SPI_rw(unsigned char DATA)
{
SPDR=DATA;
while(!(SPSR&0x80));
delay_us(10);
return SPDR;
}

void SPI_regW(unsigned char REG,unsigned char DATA)
{
SS_0;
SPI_rw(REG|W_REG);
SPI_rw(DATA);
SS_1;
}

unsigned char SPI_regR(unsigned char REG)
{
unsigned char temp;
SS_0;
SPI_rw(REG|R_REG);
temp=SPI_rw(NULL);
SS_1;
return temp;
}

void SPI_bufW(unsigned char REG,unsigned char *BUF,unsigned char LONG)
{
SS_0;
SPI_rw(REG|W_REG);
while(LONG--)
{
  SPI_rw(*BUF++);
}
SS_1;
}

void SPI_bufR(unsigned char REG,unsigned char *BUF,unsigned char LONG)
{
SS_0;
SPI_rw(REG|R_REG);
while(LONG--)
{
  BUF[LONG]=SPI_rw(NULL);
}
SS_1;
}

void NRF24L01master_init(unsigned char *BUF)
{
CE_0;
SPI_bufW(RX_ADDR_P0,BUF,5);            //Data channel 0 receive address;
SPI_bufW(TX_ADDR,BUF,5);               //Send address;
SPI_regW(EN_AA,0x01);                  //Enable channel 0 ack;
SPI_regW(EN_RXADDR,0x01);              //Enable channel 0;
SPI_regW(RF_CH,0x00);                  //working frequency,Must be consistent with the slave;
SPI_regW(RX_PW_P0,0x01);               //One byte data width;
SPI_regW(CONFIG,0x7A);                 //Mask all interrupts,Power-on,Transmission mode;
CE_1;
}

void NRF24L01slave_init(unsigned char *BUF)
{
CE_0;
SPI_bufW(RX_ADDR_P0,BUF,5);            //Data channel 0 receive address;
SPI_regW(EN_AA,0x01);                  //Enable channel 0 ack;
SPI_regW(EN_RXADDR,0x01);              //Enable channel 0;
SPI_regW(RF_CH,0x00);                  //working frequency,Must be consistent with the master;
SPI_regW(RX_PW_P0,0x01);               //One byte data width;
SPI_regW(CONFIG,0x7B);                 //Mask all interrupts,Power-on,Receive mode;
CE_1;
}

void NRF24L01_send(unsigned char DATA)
{
CE_0;
SPI_regW(W_DATA,DATA);
CE_1;
delay_us(300);
}

unsigned char NRF24L01_receive()
{
unsigned char temp=NULL;
if((SPI_regR(STATUS)&0x40))
  {
   temp=SPI_regR(R_DATA);
   SPI_regW(STATUS,(SPI_regR(STATUS)&(~(0x40))));
  }
return temp;
}

void main()
{
unsigned char address[5]={0x34,0x43,0x10,0x10,0x01};
PORT_init();
SPI_init();
NRF24L01master_init(address);
while(1)
{
  unsigned char i=0;
  for(i=0;i<0xFF;i++)
   {
    NRF24L01_send(i);
        delay_ms(300);
   }
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美国产一区二区 | 欧美国产一区二区三区 | 中文字幕免费中文 | 国产成人福利 | 日韩在线视频精品 | 日本黄色大片免费看 | 性做久久久久久免费观看欧美 | 成人国产精品免费观看 | 日韩aⅴ在线观看 | 精品欧美一区二区精品久久 | 亚洲精品一区二区在线观看 | 精品欧美乱码久久久久久 | 激情91| 久久精品一级 | 请别相信他免费喜剧电影在线观看 | 久久99国产精品久久99果冻传媒 | 日本一区二区三区免费观看 | 日韩网| 狠狠狠干 | 久久婷婷色| 久久精品免费 | 国产精品美女久久久久久久网站 | 日韩国产在线 | 日韩快播电影 | 精品成人免费一区二区在线播放 | 国产成在线观看免费视频 | 国产不卡一区在线观看 | 亚洲36d大奶网 | 毛片在线免费 | 国产精品国产三级国产aⅴ中文 | 日韩精品中文字幕一区二区三区 | 精品欧美一区二区精品久久 | 日韩av美女电影 | 欧美激情亚洲天堂 | 在线观看国产视频 | 亚洲一区视频在线 | 九九亚洲 | 亚洲综合在线一区 | 成人在线免费观看视频 | 久久精品久久久久久 | 久久九|