資源簡介
通過TTL門電路轉換電平,硬件SPI不同于IO的模擬速度更快更穩定。可采用中斷觸發方式
代碼片段和文件信息
#include“Includes.h“
INT8U?T_Address[5]={0x340x430x100x100x01};
INT8U?R_Address[5]={0x340x430x100x100x01};
/******************************************************************************************/
/*硬件SPI寄存器配置
void?SPI_Init(void)
{??
??DDRS=0xe0;
??SPI0CR1=0x50;????//01010010??0x52??CPHA一定是零
??//SPI0CR2=0x10;?
??SPI0BR=0x42;?????//40/80=0.5MHZ;
}*/
/******************************************************************************************/
/*延時函數*/
/******************************************************************************************/
void?inerDelay_us(unsigned?char?n)
{
for(;n>0;n--)?{}
}
//****************************************************************************************/
/*NRF24L01初始化*/
//***************************************************************************************/
void?init_NRF24L01(void)
{
????inerDelay_us(100);
? CE=0;????//?chip?enable
? CSN=1;???//?Spi?disable?24l01初始化之前片選一定要拉高!!!!!!!!!!!!!!!!!!!!??
? //SCK=0;???//?Spi?clock?line?init?high
SPI_Write_Buf(WRITE_REG?+?TX_ADDR?T_Address?TX_ADR_WIDTH);????//?寫本地地址
SPI_Write_Buf(WRITE_REG?+?RX_ADDR_P0?R_Address?RX_ADR_WIDTH);?//?寫接收端地址
SPI_RW_Reg(WRITE_REG?+?EN_AA?0x01);??????//??頻道0自動 ACK應答允許
SPI_RW_Reg(WRITE_REG?+?EN_RXADDR?0x01);??//??允許接收地址只有頻道0,如果需要多頻道可以參考Page21??
SPI_RW_Reg(WRITE_REG?+?SETUP_RETR?0x1a);
SPI_RW_Reg(WRITE_REG?+?RF_CH40);????????//???設置信道工作為2.4GHZ,收發必須一致
SPI_RW_Reg(WRITE_REG?+?RX_PW_P0?RX_PLOAD_WIDTH);?//設置接收數據長度,本次設置為32字節
SPI_RW_Reg(WRITE_REG?+?RF_SETUP?0x07);??? //設置發射速率為1MHZ,發射功率為最大值0dB
SPI_RW_Reg(WRITE_REG?+?CONFIG?0x3f);??? ?//?IRQ收發完成中斷響應,16位CRC,主發送
}
/****************************************************************************************************/
/*函數:uint?SPI_RW(uint?uchar)*/
/*功能:NRF24L01的SPI寫時序*/
/****************************************************************************************************/
INT8U?SPI_RW(INT8U?data)
{
??while?(!SPI0SR_SPTEF);???
SPI0DRL?=?data;
while(!(SPI0SR_SPIF));
return?SPI0DRL;
}?
/****************************************************************************************************/
/*函數:uchar?SPI_Read(uchar?reg)*/
/*功能:NRF24L01的SPI時序*/
/****************************************************************************************************/
uchar?SPI_Read(uchar?reg)
{
uchar?reg_val;
CSN?=?0;????????????????//?CSN?low?initialize?SPI?communication...
SPI_RW(reg);????????????//?Select?register?to?read?from..
reg_val?=~SPI_RW(0);????//?..then?read?registervalue
CSN?=?1;????????????????//?CSN?high?terminate?SPI?communication
return(reg_val);????????//?return?register?value
}
/****************************************************************************************************/
/*功能:NRF24L01讀寫寄存器函數*/
/****************************************************************************************************/
uint?SPI_RW_Reg(uchar?reg?uchar?value)
{
uint?status;
CSN?=?0;???????????????????//?CSN?low
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6372??2013-06-04?00:12??NRF24L01-SPI\NRF24L01_SPI.c
?????文件???????3514??2013-06-03?23:52??NRF24L01-SPI\NRF24L01_SPI.h
?????目錄??????????0??2013-06-11?12:38??NRF24L01-SPI
-----------?---------??----------?-----??----
?????????????????9886????????????????????3
- 上一篇:VNCX
- 下一篇:TCL-S1916 ,1924交換機管理程序
評論
共有 條評論
相關資源
- TCL-S1916 ,1924交換機管理程序
- VNCX
- 多窗口后臺鼠標連點器
- jstl-api-1.2和jstl-impl-1.2
- 精美千年登陸器(自動更新).rar
- Crystal Impact Match!2.1.3 試用延長
- CASS9.1最新S4數據及驅動+ET199數據及驅
- 使用選擇性重傳協議實現UDP可靠通信
- 一個超簡單的企業管理系統(帶ACCE
- 實現小波變換例子 upcoef 函數
- 類pascal語言編譯器(編譯原理實驗)
- DELPHI與西門子200PLC的串口通信實例
- mybatis連接oracle實例
- 單片機和adc0809數字電壓表
- 信號估計DOAmusicespritcapon
- PIC單片機完成的電子密碼鎖
- B/S 網上訂餐系統
- BCG幫助手冊,完整版_修正
- Labview與CH372CH375的通信測試
- 基于MFC擴展CListCtrl子項顯示圖片并疊
- VMware65_SLP_DeLLSLIC2.1
- 單片機、ADC0808809設計簡易數字電壓表
- 基于MIPS指令集的32位CPU設計與Verilog語
- 28335CAN調試程序
- NE555電路應用原理圖及PCB
- 通信軟件的具體實例──基于Socket的
- Windows異步套接字網絡編程
- 黑白棋(帶簡單AI)
- Packet Tracer 5.2.1
- 編程實現二維DCT變換