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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1927|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人一区在线观看 | 女同久久另类99精品国产 | 亚洲一区高清 | h视频免费在线观看 | 怡红院怡春院一级毛片 | 狠狠干美女| 米奇狠狠鲁 | 免费看的av| 欧美视频福利 | 福利网站在线观看 | 日日夜精品视频 | 国产精品女人久久久 | 欧美精品一区二区三区在线 | av日韩在线播放 | 桃色五月| 91精品久久久久久久久 | 国产精品视频区 | 午夜影院在线 | 午夜久久久 | 亚洲一区二区视频在线观看 | 欧美日韩高清一区 | 国产成人免费视频网站视频社区 | 在线视频亚洲 | 亚洲国产精品福利 | 欧美美女被c | 欧美一级欧美三级在线观看 | 国产精品美女视频 | www.黄网 | 成人av高清| 伊人免费在线观看高清 | www.久久精品| 男女深夜网站 | 国产精品黄色 | 国产黄色小视频在线观看 | 亚洲一区二区三区久久 | 久久亚洲国产精品 | 中文字幕在线观看av | 99只有精品 | 国产精品久久久久999 | 91久久国产综合久久 | 国产黄色在线观看 |