|
51單片機(jī)做的一個(gè)很簡(jiǎn)單的DS1302數(shù)字時(shí)鐘+DS18B20溫度檢測(cè),加入了NRF24L01的無(wú)線模塊,將其數(shù)據(jù)發(fā)送到戰(zhàn)艦開(kāi)發(fā)板。
STM32這邊直接用的做無(wú)線實(shí)驗(yàn)時(shí)調(diào)好的代碼
51這邊溫度是1秒鐘一采集,無(wú)線發(fā)送也是定時(shí)一秒鐘,1602和TFT顯示可以實(shí)現(xiàn)同步。
單片機(jī)源程序如下:
- #include"delay.h"
- #include"sys.h"
- #include"usart.h"
- #include"wkup.h"
- #include"led.h"
- #include"key.h"
- #include"lcd.h"
- #include"spi.h"
- //#include"adc.h"
- //#include"dma.h"
- #include"wkup.h"
- #include"nrf24l01.h"
-
- const u8 Send_Buff[]="I have received the massege!";
- #define SIZE sizeof(Send_Buff)
-
- u8 Receive_Buff[32];
-
- int main(void)
- {
- delay_init();
- uart_init(9600);
- LCD_Init();
- LED_Init();
- KEY_Init();
- WKUP_Init();
- NRF24L01_Init();
- // ADC1_Init();
- // DMA1_Init();
- LCD_Clear(BLACK);
- POINT_COLOR=WHITE;
- BACK_COLOR=BLACK;
- LCD_ShowString(60,50,200,16,16,"WarShip STM32");
- LCD_ShowString(60,70,200,16,16,"NRF24L01 TEST");
- LCD_ShowString(60,100,200,16,16,"2013/12/15");
- while(NRF24L01_Check()) //檢查NRF24L01是否在位.
- {
- LCD_ShowString(60,130,200,16,16,"NRF24L01 Check Error!");
- delay_ms(200);
- LED0=~LED0;
- delay_ms(200);
- }
- LCD_Clear(WHITE);
- POINT_COLOR=RED;
- BACK_COLOR=WHITE;
- LCD_ShowString(60,50,200,16,16,"WarShip STM32");
- LCD_ShowString(60,70,200,16,16,"NRF24L01 TEST");
- LCD_ShowString(60,100,200,16,16,"2013/12/17");
- LCD_ShowString(60,130,200,16,16,"NRF24L01 OK");
- LCD_ShowString(60,150,200,16,16,"KEY0:Send ");
- LCD_ShowString(60,170,200,16,16,"KEY2:Receive");
- LCD_ShowString(60,200,200,16,16,"STATUS:");
- // ADC_SoftwareStartConvCmd(ADC1,ENABLE); //軟件啟動(dòng)ADC
- // ADC_DMACmd(ADC1,ENABLE);//開(kāi)始ADC_DMA傳輸
-
- while(1)
- {
- u8 keyval,sta,t,mode=0;
- keyval=KEY_Scan(0);
- if(keyval==1)
- {
- mode=1;//發(fā)送模式
- }
- else if(keyval==3)
- {
- mode=0;//接收模式
- }
- if(mode)
- {
- TX_Mode();
- LED1=0;
- sta=RF_TX_Pack((u8*)Send_Buff);
- LCD_ShowxNum(116,200,sta,3,16,0);
- if(sta&TX_OK)
- LCD_ShowString(60,230,200,16,16,(u8*)Send_Buff);
- }
- else
- {
- RX_Mode();
- LED1=1;
- sta=RF_RX_Pack((u8*)Receive_Buff);
- LCD_ShowxNum(116,200,sta,3,16,0);
- if(sta&RX_OK)
- LCD_ShowString(60,230,200,16,16,(u8*)Receive_Buff);
- }
- delay_ms(10);
- t++;
- if(t==50)
- {
- LED0=~LED0;
- t=0;
- }
- }
- }
復(fù)制代碼 轉(zhuǎn)載于www點(diǎn)openedv點(diǎn)com/posts/list/26309.htm
所有資料51hei提供下載:
STM32無(wú)線溫度接收.7z
(203.85 KB, 下載次數(shù): 41)
2019-3-12 15:30 上傳
點(diǎn)擊文件名下載附件
無(wú)線溫度采集.zip
(63.61 KB, 下載次數(shù): 33)
2019-3-12 08:46 上傳
點(diǎn)擊文件名下載附件
NRF24L01+寄存器及指令集.doc
(54.5 KB, 下載次數(shù): 21)
2019-3-12 08:46 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|