資源簡介
本例程利用TI DSP TMS320F28027實現了對nrf2401無線模塊的通信,并能實現數據的收發。

代碼片段和文件信息
#include?“DSP28x_Project.h“?????//?Device?Headerfile?and?Examples?Include?File
#include?
#include?“SCIA.h“
Uint8?TX_ADDRESS[TX_ADR_WIDTH]={0x340x430x100x100x01};?//發送地址
Uint8?RX_ADDRESS[RX_ADR_WIDTH]={0x340x430x100x100x01};?//發送地址
char?*Error_String?=?“Error“;
char?*Right_String?=?“Right“;
//###########################################################################
//?$?函數名稱:??void?NRF24L01_GPIO(void)???????????????$
//?$?函數功能:??NRF24L01引腳定義,GPIO0位IRQGPIO1為CE引腳???$
//###########################################################################
void?NRF24L01_GPIO(void)
{
EALLOW;
//---GPIO0為nrf2401的IRQ-------//
GpioCtrlRegs.GPAPUD.bit.GPIO0?=?0;
GpioCtrlRegs.GPAQSEL1.bit.GPIO0=0;
GpioCtrlRegs.GPAMUX1.bit.GPIO0=0;
GpioCtrlRegs.GPADIR.bit.GPIO0=0;?//input
//---GPIO1為nrf2401的CE-------//
GpioCtrlRegs.GPAPUD.bit.GPIO1?=?0;
GpioCtrlRegs.GPAQSEL1.bit.GPIO1=0;
GpioCtrlRegs.GPAMUX1.bit.GPIO1=0;
GpioCtrlRegs.GPADIR.bit.GPIO1=1;?//output
//---GPIO19為SPI的CSN片選引腳-------//
GpioCtrlRegs.GPAPUD.bit.GPIO19?=?0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO19=0;
GpioCtrlRegs.GPAMUX2.bit.GPIO19=0;
GpioCtrlRegs.GPADIR.bit.GPIO19=1;?//output
//---GPIO18為SPI的SCK片選引腳-------//
GpioCtrlRegs.GPAPUD.bit.GPIO18?=?0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO18=0;
GpioCtrlRegs.GPAMUX2.bit.GPIO18=0;
GpioCtrlRegs.GPADIR.bit.GPIO18=1;?//output
//---GPIO17為SPI的MISO數據引腳-------//
GpioCtrlRegs.GPAPUD.bit.GPIO17?=?0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO17=0;
GpioCtrlRegs.GPAMUX2.bit.GPIO17=0;
GpioCtrlRegs.GPADIR.bit.GPIO17=0;?//input
//---GPIO16為SPI的MOSI命令引腳-------//
GpioCtrlRegs.GPAPUD.bit.GPIO16?=?0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO16=0;
GpioCtrlRegs.GPAMUX2.bit.GPIO16=0;
GpioCtrlRegs.GPADIR.bit.GPIO16=1;?//output
EDIS;
GpioDataRegs.GPASET.bit.GPIO19=1;??//SPI-CSN??置高
GpioDataRegs.GPACLEAR.bit.GPIO18=1;//SPI-SCK??置低
GpioDataRegs.GPASET.bit.GPIO16=1;??//SPI-MOSI??置高
GpioDataRegs.GPACLEAR.bit.GPIO1=1;??//2401-CE??置低
}
//###########################################################################
//?$?函數名稱:??Uint8?NRF24L01_Check(void)??????????????$
//?$?函數功能:??檢測24L01是否存在0:成功;1:失敗 ??????????$
//###########################################################################
Uint8?NRF24L01_Check(void)
{
Uint8?buf[5]={0XA50XA50XA50XA50XA5}?buf1[5]={};
Uint8?i=0j=0;
// //----------test---------//
// for(j=0;j<5;j++)
// {
// scia_xmit(buf[j]);
// }
NRF24L01_Write_Buf(WRITE_REG_nrf+TX_ADDRbuf5);//寫入5個字節的地址.
NRF24L01_Read_Buf(TX_ADDRbuf15);?//讀出寫入的地址
for(i=0;i<5;i++)?if(buf1[i]!=0XA5){break;}
// //----------test---------//
// for(j=0;j<5;j++)
// {
// scia_xmit(buf1[j]);
// }
if(i!=5)??//檢測24L01錯誤
{
scia_msg(Error_String?);
return?1;
}
else
{
// scia_msg(Right_String);
return?0; ?//檢測到24L01
}
}
//###########################################################################
//?$?函數名稱:??Uint8?drv_spi_read_write_byte(?Uint8?TxByte?)??????$
//?$?函數功能:?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????11598??2018-01-24?19:25??nrf2401\nrf2401.c
?????文件???????5178??2018-01-24?18:51??nrf2401\nrf2401.h
?????目錄??????????0??2018-02-05?14:19??nrf2401
-----------?---------??----------?-----??----
????????????????16776????????????????????3
評論
共有 條評論