欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
NRF24L01單片機(jī)驅(qū)動(dòng)程序(收發(fā)用同一套代碼)
[打印本頁(yè)]
作者:
51黑電子迷
時(shí)間:
2017-5-24 03:20
標(biāo)題:
NRF24L01單片機(jī)驅(qū)動(dòng)程序(收發(fā)用同一套代碼)
收發(fā)用同一套代碼。
注意:
單片機(jī)型號(hào) STC12LE5A48S2
1
用到串口輸出測(cè)試信息,按下唯一一個(gè)按鍵后,開(kāi)始發(fā)送,接收端收到100個(gè)數(shù)據(jù)包后會(huì)打印一次OK,否者收到這100個(gè)包有錯(cuò),打印這100個(gè)數(shù)據(jù)包的序列號(hào)。
2 晶振頻率22.1184M
3
信號(hào)腳位定義:
sbit IRQ = P1^1;
sbit CE = P1^0;
sbit CSN= P1^4;
sbit SCK= P1^5;
sbit MOSI= P1^6;
sbit MISO= P1^7;
唯一一個(gè)按鍵定義:
sbit KEY = P1^2;
0.png
(57.68 KB, 下載次數(shù): 69)
下載附件
2017-5-24 03:17 上傳
單片機(jī)源程序如下:
#include"config.h"
#include"stdio.h"
sbit led=P0^0;
/*
unsigned char xdata re_send[100];
void send_image(unsigned char *pic,unsigned char len)
{
unsigned int send_k=0;
unsigned char temp1,temp2,temp3,a=0;
unsigned char mode_rec=0;
init_nrf24l01_io();
while(1)
{
ifnnrf_rx_mode();
IRQ=1;
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
tx_buf[0]=0xaa;
tx_buf[1]=0x55;
tx_buf[2]=0xaa;
tx_buf[3]=0x55;
tx_buf[4]=0x01;
tx_buf[5]=(len/256);
tx_buf[6]=(len%256);
ifnnrf_tx_mode();
while(IRQ);
sta=SPI_Read(STATUS);
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
if(sta&STA_MARK_TX)
{
com_printf("TX OK!",sta);
break;
}
else
{
com_printf("TX ER!",sta);
ifnnrf_CLERN_ALL();
}
}
while(1)
{
ifnnrf_rx_mode();
ifnnrf_CLERN_ALL();
while(IRQ==0);
_delay_us(1000);
if(IRQ==0)
{
sta=SPI_Read(STATUS);
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
if(sta&STA_MARK_RX)
{
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer;
if((rx_buf[0]==0xaa)&&(rx_buf[1]==0x55)&&(rx_buf[2]==0xaa)&&(rx_buf[3]==0x55)&&(rx_buf[0]==0x01))
break;
}
}
}
while(1)
{
IRQ=1;
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
tx_buf[0]=(send_k/256);
tx_buf[1]=(send_k%256);
for(a=0;a<30;a++)
tx_buf[a+2]=*(pic+send_k*30+a);
ifnnrf_tx_mode();
while(IRQ);
if(send_k*30<len)
send_k++;
else
break;
}
while(1)
{
ifnnrf_rx_mode();
ifnnrf_CLERN_ALL();
while(IRQ==0);
_delay_us(1000);
if(IRQ==0)
{
sta=SPI_Read(STATUS);
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
if(sta&STA_MARK_RX)
{
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer;
if((rx_buf[0]==0xaa)&&(rx_buf[1]==0x55)&&(rx_buf[2]==0xaa)&&(rx_buf[3]==0x55)&&(rx_buf[4]==0x02))
{
mode_rec=rx_buf[4];
break;
}
}
}
}
while(temp2<mode_rec)
{
ifnnrf_rx_mode();
ifnnrf_CLERN_ALL();
while(IRQ==0);
_delay_us(1000);
if(IRQ==0)
{
sta=SPI_Read(STATUS);
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
if(sta&STA_MARK_RX)
{
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer;
for(temp1=0;temp1<30;temp1++)
re_send[temp2+temp1]=rx_buf[temp1];
}
}
}
while(temp3<mode_rec)
{
while(1)
{
IRQ=1;
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
tx_buf[0]=0;
tx_buf[1]=temp3;
for(a=0;a<30;a++)
tx_buf[a+2]=*(pic+re_send[temp3]*30+a);
ifnnrf_tx_mode();
while(IRQ);
if(send_k*30<len)
send_k++;
else
break;
}
temp3++;
}
}
*/
main()
{
unsigned char i=0;
unsigned int count_send=0;
unsigned int rec_new=0;
unsigned int rec_old=0;
unsigned int rec_err=0;
unsigned int lock_key=0;
init_cpu();
init_nrf24l01_io();
for(i=0;i<32;i++)
{
tx_buf[i]=i;
}
TI=1;
printf("hello world");
printf("hello world");
ifnnrf_rx_mode();
while(1)
{
KEY=1;
while(KEY==0)
{
IRQ=1;
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
count_send++;
tx_buf[30]=count_send/256;
tx_buf[31]=count_send%256;
ifnnrf_tx_mode();
while(IRQ);
sta=SPI_Read(STATUS);
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
if(sta&STA_MARK_TX)
{
if((count_send%100)==0)
{
TI=1;
printf("TX OK!%d\n\t",count_send);
}
}
else
{
TI=1;
printf("TX ER!%2XH\n\t",sta);
ifnnrf_CLERN_ALL();
}
lock_key=1;
} //發(fā)送
if(lock_key)
{
lock_key=0;
ifnnrf_rx_mode();
IRQ=1;
while(IRQ==0);
_delay_us(400);
}
//ifnnrf_rx_mode(); 每次都切換到輸入 要過(guò)一段時(shí)間才能正常接收,而對(duì)方在一直發(fā)送,在發(fā)送過(guò)來(lái)后,這里還沒(méi)初始化完,于是數(shù)據(jù)錯(cuò)誤
//ifnnrf_CLERN_ALL();
IRQ=1;
if(IRQ==0)
{
sta=SPI_Read(STATUS);
SPI_RW_Reg(WRITE_REG+STATUS,0xff);
if(sta&STA_MARK_RX)
{
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);// read receive payload from RX_FIFO buffer;
rec_new=(rx_buf[30]*256+rx_buf[31]);
if(rec_new==(rec_old+1))
{
P2=0XFF;
if((rec_new%100)==0)
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
http://www.raoushi.com/bbs/dpj-85697-1.html
作者:
我么得感情
時(shí)間:
2020-8-10 13:44
樓主在嗎? 這款音頻解碼芯片切換音樂(lè)的時(shí)候會(huì)不會(huì)有卡頓,有什么比較好的解決方案呢。還是一直存在這種卡頓情況
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1