91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-04
  • 語言: 其他
  • 標簽: msp430??spi??nrf24l01??

資源簡介

包含nrf24l01頭文件跟.c文件,可以在頭文件設置是使用硬件spi還是軟件模擬spi,接法完全一樣。用的msp430f5438a的UCB3,實測完全通過,需要一對進行收發(fā),單個發(fā)送或接受不會成功

資源截圖

代碼片段和文件信息

#include?“NRF24L01.h“


extern?u8?TX_ADDRESS[TX_ADR_WIDTH]={0x340x430x100x100x01};?//發(fā)送地址
extern?u8?RX_ADDRESS[RX_ADR_WIDTH]={0x340x430x100x100x01};?//發(fā)送地址


void?SPI3_Init()
{
#if?USE_HW_SPI
??P10SEL|=BIT1+BIT2+BIT3;????//設置P10.1~P10.3外設功能
??P10SEL&=~(BIT0+BIT4+BIT5);
??P10DIR|=BIT0+BIT1+BIT3+BIT4;?????//設置CSMOSICLKCE為輸出方向
??P10DIR&=~(BIT2+BIT5);?????????????//設置MISO為輸入方向
??P10DS|=BIT0+BIT1+BIT3+BIT4;?????
??P10REN|=BIT2+BIT5;??????????????//設置MISO上拉
??P10OUT|=BIT1+BIT2+BIT5;
??P10OUT&=~BIT0+BIT3;
??UCB3CTL1|=UCSWRST;???????
??UCB3CTL0?=UCCKPH+UCMSB+UCMST+UCMODE_0+UCSYNC;????//3線SPI主機模式,時鐘極性低,先發(fā)送MSB
??UCB3CTL0&=~(UCCKPL);
??UCB3CTL1|=UCSSEL_2;??????????///選擇SMCLK
??UCB3BR0=5;??????????????????//25M/5=5M?<10M
??UCB3BR1=0;
??UCB3CTL1&=~UCSWRST;
??UCB3IE?&=?~(UCRXIE+UCTXIE);??//不開中斷
//??UCB3IFG&=~UCRXIFG;
#elif?!USE_HW_SPI
??P10DIR|=BIT0+BIT1+BIT3+BIT4;??
??P10DIR&=~(BIT2+BIT5);?
??P10DS|=BIT0+BIT1+BIT3+BIT4;?????
??P10REN|=BIT2+BIT5;???????????
??P10OUT|=BIT2+BIT5;
??P10OUT&=~BIT3;
#endif
}

//連接方式
????//P10.0->CSN????P10.1->MOSI
????//P10.2->MISO???P10.3->CLK
????//P10.4->CE?????P10.5->IRQ

u8?SPI3_SendReceiveByte(u8?byte)
{
??u8?val;
#if?USE_HW_SPI
??while?(!(UCB3IFG&UCTXIFG));???//等待TXBUF為空
??UCB3TXBUF=byte;?
??while((UCB3STAT&UCBUSY)&&(!(UCB3IFG&UCRXIFG)));????//等待發(fā)送跟接收完成
??val=UCB3RXBUF;
#elif?!USE_HW_SPI
??u8?i;
??for(i=0;i<8;i++)
??{
????if(byte&0x80)
??????NRFMOSI_1;
????else
??????NRFMOSI_0;
????byte<<=1;
????NRFCLK_1;
????if(NRFMISO)
??????byte|=0x01;
????delay_us(1);
????NRFCLK_0;
??}
??val=byte;
#endif?
??return?val;
??
}








u8?NRF_WriteReg(u8?regu8?val)
{
??u8?temp;
??NRF24L01_CSN_0;
??temp=SPI3_SendReceiveByte(reg);
??SPI3_SendReceiveByte(val);
??NRF24L01_CSN_1;
??return?temp;
}




u8?NRF_ReadReg(u8?reg)
{
??u8?val;
??NRF24L01_CSN_0;
??SPI3_SendReceiveByte(reg);
??val=SPI3_SendReceiveByte(0xff);
??NRF24L01_CSN_1;
??return?val;
}


u8?NRF_ReadBuf(u8?regu8?*buffu8?num)
{
??u8?ival;
??NRF24L01_CSN_0;
??val=SPI3_SendReceiveByte(reg);
??for(i=0;i????buff[i]=SPI3_SendReceiveByte(0);
??NRF24L01_CSN_1;
??return?val;?
}


u8?NRF_WriteBuf(u8?regu8?*buffu8?num)
{
??u8?vali;
??NRF24L01_CSN_0;
??val=SPI3_SendReceiveByte(reg);
??for(i=0;i????SPI3_SendReceiveByte(*buff++);
??NRF24L01_CSN_1;
??return?val;
}

u8?NRF_SendPacket(u8?*TxBuf)
{
??u8?val;
??NRF24L01_CE_0;
??NRF_WriteBuf(WR_TX_PLOADTxBufTX_PLOAD_WIDTH);
??NRF24L01_CE_1;
??NRF_WriteReg(WRITE_REG+STATUS0xff);
//??Tx_Mode(TxBuf);
//??delay_ms(5);
??while(NRF24L01_IRQ!=0);
??val=NRF_ReadReg(STATUS);
??NRF_WriteReg(WRITE_REG+STATUS0xff);
??NRF_WriteReg(WRITE_REGval);
??if(val&MAX_TX)
??{
????NRF_WriteReg(FLUSH_TX0xff);
????return?MAX_TX;
??}
??if(val&TX_OK)
????return?TX_OK;
??return?0xff;??
}


u8?NRF_ReceivePacket(u8?*RxBuf)
{
??u8?val;
??val=NRF_ReadReg(STATUS);
??NRF_WriteReg(WRITE_REG+STATU

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4817??2015-04-01?18:34??nrf24l01\NRF24L01.h

?????文件???????4619??2015-04-01?13:20??nrf24l01\NRF24L01.c

?????目錄??????????0??2015-04-06?21:51??nrf24l01

-----------?---------??----------?-----??----

?????????????????9436????????????????????3


評論

共有 條評論