欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2772|回復: 1
收起左側

stm32與51單片機無線通信源程序

[復制鏈接]
ID:474396 發表于 2019-5-22 21:29 | 顯示全部樓層 |閱讀模式
stm32與51無線通信

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"         
  7. #include "24l01.h"          


  8. int main(void)
  9. {         
  10.         u8 mode;
  11.         u16 t=0;                         
  12.         u8 tmp_buf[33]={0x01,0x00,0x34,0x36,0x03,0x36,0x38};                    
  13.         delay_init();                     //延時函數初始化          
  14.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
  15.         uart_init(115200);                 //串口初始化為115200
  16.         LED_Init();                                          //初始化與LED連接的硬件接口
  17.         KEY_Init();                                        //初始化按鍵
  18. //        LCD_Init();                                           //初始化LCD  
  19.         NRF24L01_Init();                    //初始化NRF24L01
  20. //         POINT_COLOR=RED;                        //設置字體為紅色
  21. //        LCD_ShowString(30,50,200,16,16,"WarShip STM32");       
  22. //        LCD_ShowString(30,70,200,16,16,"NRF24L01 TEST");       
  23. //        LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
  24. //        LCD_ShowString(30,110,200,16,16,"2015/1/17");

  25.         LED1=0;

  26.          
  27.         while(NRF24L01_Check())
  28.         {
  29.              LED1=1;       
  30.         }
  31.         printf("NRF24L01 OK\r\n");
  32.         mode=1;         
  33. //         while(1)
  34. //        {              
  35. //                key=KEY_Scan(0);
  36. //                if(key==KEY0_PRES)
  37. //                {
  38. //                        mode=0;   
  39. //                        break;
  40. //                }else if(key==KEY1_PRES)
  41. //                {
  42. //                        mode=1;
  43. //                        break;
  44. //                }
  45. //                t++;
  46. //                if(t==100)LCD_ShowString(10,150,230,16,16,"KEY0:RX_Mode  KEY1:TX_Mode"); //閃爍顯示提示信息
  47. //                 if(t==200)
  48. //                {       
  49. //                        LCD_Fill(10,150,230,150+16,WHITE);
  50. //                        t=0;
  51. //                }
  52. //                delay_ms(5);          
  53.         //}   
  54. //         LCD_Fill(10,150,240,166,WHITE);//清空上面的顯示                  
  55. //         POINT_COLOR=BLUE;//設置字體為藍色          
  56.         if(mode==0)//RX模式
  57.         {
  58.                 LCD_ShowString(30,150,200,16,16,"NRF24L01 RX_Mode");       
  59.                 LCD_ShowString(30,170,200,16,16,"Received DATA:");       
  60.                 NRF24L01_RX_Mode();                  
  61.                 while(1)
  62.                 {                                                                                   
  63.                         if(NRF24L01_RxPacket(tmp_buf)==0)//一旦接收到信息,則顯示出來.
  64.                         {
  65.                                 tmp_buf[32]=0;//加入字符串結束符
  66.                                 LCD_ShowString(0,190,lcddev.width-1,32,16,tmp_buf);   
  67.                         }else delay_us(100);          
  68.                         t++;
  69.                         if(t==10000)//大約1s鐘改變一次狀態
  70.                         {
  71.                                 t=0;
  72.                                 LED0=!LED0;
  73.                         }                                     
  74.                 };       
  75.         }else//TX模式
  76.         {                                                            
  77. //                LCD_ShowString(30,150,200,16,16,"NRF24L01 TX_Mode");       
  78.                 NRF24L01_TX_Mode();
  79.                 mode=' ';//從空格鍵開始  
  80.                 while(1)
  81.                 {                                                              
  82.                         if(NRF24L01_TxPacket(tmp_buf)==TX_OK)
  83.                         {
  84.                                 printf("Sended DATA:%s\r\n",tmp_buf);       
  85.                                 //LCD_ShowString(0,190,lcddev.width-1,32,16,tmp_buf);
  86. //                                key=mode;
  87. //                                for(t=7;t<32;t++)
  88. //                                {
  89. //                                        key++;
  90. //                                        if(key>('~'))key=' ';
  91. //                                        tmp_buf[t]=key;       
  92. //                                }
  93. //                                mode++;
  94. //                                if(mode>'~')mode=' ';            
  95. //                                tmp_buf[32]=0;//加入結束符                  
  96.                         }else
  97.                         {                                                                                          
  98. //                                 LCD_Fill(0,170,lcddev.width,170+16*3,WHITE);//清空顯示                          
  99. //                                LCD_ShowString(30,170,lcddev.width-1,32,16,"Send Failed ");
  100.                                 printf("Sended Failed");                               
  101.                         };
  102.                         delay_ms(6000);
  103.                         LED0=!LED0;
  104.                         delay_ms(1500);                                    
  105.                 };
  106.         }
  107. }
復制代碼

所有資料51hei提供下載:
無線通信.7z (251.4 KB, 下載次數: 14)



回復

使用道具 舉報

ID:1 發表于 2019-5-23 03:17 | 顯示全部樓層
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表