freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

無(wú)線模塊24l01雙向收發(fā)-資料下載頁(yè)

2025-08-23 03:21本頁(yè)面
  

【正文】 it SPI tranaction status = SPI_RW(reg)。 // Select register to write to and read status uchar for(uchar_ctr=0。uchar_ctruchars。uchar_ctr++) pBuf[uchar_ctr] = SPI_RW(0)。 // CSN = 1。 return(status)。 // return nRF24L01 status uchar}//函數(shù):uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)//功能: 用于寫數(shù)據(jù):為寄存器地址,pBuf:為待寫入數(shù)據(jù)地址,uchars:寫入數(shù)據(jù)的個(gè)數(shù)uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars){ uint status,uchar_ctr。 CSN = 0。 //SPI使能 status = SPI_RW(reg)。 for(uchar_ctr=0。 uchar_ctruchars。 uchar_ctr++) // SPI_RW(*pBuf++)。 CSN = 1。 //關(guān)閉SPI return(status)。 // }//函數(shù):void SetRX_Mode(void)//功能:數(shù)據(jù)接收配置 void SetRX_Mode(void){ CE=0。// SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f)。 // IRQ收發(fā)完成中斷響應(yīng),16位CRC ,主接收 CE = 1。 delayus(130)。}//函數(shù):unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)//功能:數(shù)據(jù)讀取后放如rx_buf接收緩沖區(qū)中unsigned char nRF24L01_RxPacket(unsigned char* rx_buf){ unsigned char revale=0。 sta=SPI_Read(STATUS)。 // 讀取狀態(tài)寄存其來判斷數(shù)據(jù)接收狀況 if(RX_DR) // 判斷是否接收到數(shù)據(jù) { CE = 0。 //SPI使能 SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH)。// read receive payload from RX_FIFO buffer revale =1。 //讀取數(shù)據(jù)完成標(biāo)志 } SPI_RW_Reg(WRITE_REG+STATUS,sta)。 //接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT都置高為1,通過寫1來清楚中斷標(biāo)志 return revale。}//函數(shù):void nRF24L01_TxPacket(unsigned char * tx_buf)//功能:發(fā)送 tx_buf中數(shù)據(jù)void nRF24L01_TxPacket(unsigned char * tx_buf){ CE=0。 //StandBy I模式 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)。 // 裝載接收端地址 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH)。 // 裝載數(shù)據(jù) // SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e)。 // IRQ收發(fā)完成中斷響應(yīng),16位CRC,主發(fā)送 CE=1。 //置高CE,激發(fā)數(shù)據(jù)發(fā)送 delayus(10)。}//通過串口將接收到數(shù)據(jù)發(fā)送給PC端void R_S_Byte(uchar R_Byte){ SBUF = R_Byte。 while( TI == 0 )。 //查詢法 TI = 0。 }/*無(wú)線模塊到此為止*//*以下為延時(shí)模塊*///延時(shí)1MS函數(shù)void delayms(unsigned int k){ unsigned int j,i。 for(j=k。j0。j) for(i=110。i0。i)。}//延時(shí)1us函數(shù)void delayus(unsigned int i){ for(。i0。i)。}/*延時(shí)模塊到此為止*//*LCD12864模塊如下*/void w_12864(unsigned char mand){ rs_12864=0。//寫指令 rw_12864=0。 en_12864=0。 delayus(3)。 en_12864=1。 P2=mand。 delayms(3)。 en_12864=0。}void wdata_12864(unsigned char dat){ rs_12864=1。 rw_12864=0。 en_12864=0。 delayus(3)。 en_12864=1。 P2=dat。 delayms(3)。 en_12864=0。}void init_12864(){ psb_12864=1。 w_12864(0x01)。//清屏 delayms(1)。 w_12864(0x38)。 delayms(1)。 w_12864(0xc0)。 delayms(1)。 w_12864(0x0c)。 delayms(1)。}/*LCD12864模塊到此為止*/void main(){ a=1。 b=1。 TxBuf[0]=0x00。 RxBuf[0]=0x00。 init_12864()。 //12864初始化 init_NRF24L01()。 //無(wú)線通信24L01初始化 delayms(300)。 EA=1。 //開啟總中斷 EX0=1。//開外部中斷1 IT0=1。//下降沿觸發(fā) while(1) { SPI_RW_Reg(WRITE_REG + CONFIG, 0xbf)。 //24L01處于接收狀態(tài) SetRX_Mode()。 //等待接受數(shù)據(jù),在接受數(shù)據(jù)前要寫這條指令 delayms(300)。 while(a) //接收循環(huán),中斷函數(shù)中成功接收數(shù)據(jù)后,退出該循環(huán) { _nop_()。 } delayms(1000)。 //改變這個(gè)延時(shí)函數(shù)可以改變連續(xù)兩次收發(fā)的間隔,從處理器加了這個(gè)延時(shí)函數(shù)后,主控制器即使不加也是可以的 w_12864(0x80)。 wdata_12864(0x30+RxBuf[0]%10)。 SPI_RW_Reg(WRITE_REG + CONFIG, 0xfe)。 //24L01處于發(fā)送狀態(tài) delayms(30)。 nRF24L01_TxPacket(TxBuf)。 // Transmit Tx buffer data delayms(30)。 //可變 SPI_RW_Reg(WRITE_REG+STATUS,0XFF)。 delayms(30)。 while(b) { a=1。 TxBuf[0]+=2。 if(TxBuf[0]9) TxBuf[0]=0。 break。 } }} void zhongd() interrupt 0 //外部中斷函數(shù){ uchar i,j=1,temp。 while(j) { if(nRF24L01_RxPacket(RxBuf)) //接收數(shù)據(jù) { temp++。 for(i=0。i1。i++) { R_S_Byte(RxBuf[i])。 delayms(3)。 } j=0。 //通過無(wú)線接收到的數(shù)據(jù)存入RxBuf[0]后再退出中斷 } } a=0。 //接收到數(shù)據(jù)后,退出接收循環(huán)(循環(huán)在主函數(shù)里面進(jìn)行) b=1。 //接收到數(shù)據(jù)后,進(jìn)入發(fā)送循環(huán)(循環(huán)在主函數(shù)里面進(jìn)行)}
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1