久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7587|回復: 5
打印 上一主題 下一主題
收起左側

STM32中2.4G無線通信NRF24L01例程+資料

  [復制鏈接]
跳轉到指定樓層
樓主
STM32中2.4G無線通信例程


按照如下方式在電路板上安排的管腳
       8  7
       6  5
       4  3
       2  1
各管腳如下定義:
8.IRQ            7.MISO
6.MOSI      5.SCK
4.CSN        3.CE  
2.VCC        1.GND
具體說明:
3.CE       芯片的模式控制線。在 CSN 為低的情況下,CE 協同NRF24L01 的CONFIG 寄存器共同決定NRF24L01 的狀態(參照NRF24L01 的狀態機)。                 
4.CSN      為芯片的片選線  CSN 為低電平芯片工作
5.SCK      為芯片控制的時鐘線(SPI時鐘)
6.MOSI     為芯片控制數據線(Master output slave input)    主輸出  從輸入
7.MISO     芯片控制數據線  (Master input slave output)  master 碩士 主人 船長   slave  從屬奴隸                                                 主輸入  從輸出
8.IRQ     中斷信號引腳。中斷時變為低電平,即NRF24L01內部發生中斷時IRQ 引腳從高電平變為低電平。引腳會在以下三種情況變低:Tx FIFO 發完并且收到ACK(使能ACK情況下)、Rx FIFO 收到數據、達到最大重發次數。
中斷:
nRF24L01 的中斷引腳(IRQ)為低電平觸發,當狀態寄存器中TX_DS(數據發送完成中斷位)、RX_DR(接收數據中斷位) 或MAX_RT(達到最多次重發中斷位)為高時觸發中斷。當MCU 給中斷源寫‘1’時,中斷引腳被禁止。可屏蔽中斷可以被IRQ 中斷屏蔽。通過設置可屏蔽中斷位為高,則中斷響應被禁止。默認狀態下所有的中斷源是被禁止的。
在寫寄存器之前一定要進入待機模式或掉電模式


單片機源程序如下:
  1. /* 下載程序后,首先要按下按鍵K_UP或者K_DOWN,按鍵K_UP是接收,K_DOWN是發送,兩塊開發板
  2.         只能一個作為發送一個作為接收,否則兩個都為接收或者發送將進入死循環。接收的時候
  3.         指示燈閃爍  24L01的最大SPI時鐘為10Mhz因此在設定SPI時鐘的時候要低于10M*/

  4. #include "sys.h"
  5. #include "delay.h"
  6. #include "usart.h"
  7. #include "led.h"
  8. #include "button.h"
  9. #include "lcd_driver.h"
  10. #include "gui.h"
  11. #include "nrf24l01.h"


  12. void lcd_display()           //LCD初始化顯示
  13. {
  14.         TFT_ClearScreen(BLACK);
  15.         GUI_Show12ASCII(10,10,"PRECHIN",GREEN,BLACK);
  16.         GUI_Show12ASCII(10,30,"123456",GREEN,BLACK);
  17.         GUI_Show12ASCII(10,50,"NRF24L01 Test!",GREEN,BLACK);        
  18.         GUI_Show12ASCII(10,70,"2015-11-13",GREEN,BLACK);
  19.         GUI_Show12ASCII(10,90,"K_UP:RX_Mode  K_DOWN:TX_Mode",GREEN,BLACK);
  20.         

  21. }
  22. void data_pros()        //數據處理函數
  23. {
  24.         u8 key;
  25.         static u8 mode=2;  //模式選擇
  26.         u8 rx_buf[33]="123456 ";
  27.         static u16 t=0;
  28.         while(1)                //等待按鍵按下進行選擇發送還是接收
  29.         {
  30.                 key=keyscan(0);        
  31.                 if(key==K_UP_PRESS)           //接收模式
  32.                 {
  33.                         mode=0;
  34.                         GUI_Show12ASCII(10,140,"RX_Mode",RED,BLACK);        
  35.                         GUI_Show12ASCII(10,160,"Received Data:",RED,BLACK);
  36.                         GUI_Show12ASCII(120,160,"                ",RED,BLACK);
  37.                         break;
  38.                 }
  39.                 if(key==K_DOWN_PRESS)         //發送模式
  40.                 {
  41.                         mode=1;
  42.                         GUI_Show12ASCII(10,140,"TX_Mode",RED,BLACK);
  43.                         GUI_Show12ASCII(10,160,"Send Data:    ",RED,BLACK);
  44.                         GUI_Show12ASCII(120,160,"              ",RED,BLACK);
  45.                         break;
  46.                 }        
  47.         }
  48.         
  49.         if(mode==0)                //接收模式
  50.         {        
  51.                 NRF24L01_RX_Mode();        
  52.                 while(1)
  53.                 {
  54.                         if(NRF24L01_RxPacket(rx_buf)==0) //接收到數據顯示
  55.                         {
  56.                                 rx_buf[32]='\0';
  57.                                 GUI_Show12ASCII(120,160,rx_buf,RED,BLACK);
  58.                                 break;                        
  59.                         }
  60.                         else
  61.                         {
  62.                                 delay_ms(1);
  63.                         }
  64.                         t++;
  65.                         if(t==1000)
  66.                         {
  67.                                 t=0;
  68.                                 led1=~led1; //一秒鐘改變一次狀態
  69.                         }        
  70.                 }        
  71.         }
  72.         if(mode==1)                 //發送模式
  73.         {
  74.                                 
  75.                 NRF24L01_TX_Mode();
  76.                 while(1)
  77.                 {
  78.                         if(NRF24L01_TxPacket(rx_buf)==TX_OK)
  79.                         {
  80.                                 GUI_Show12ASCII(120,160,rx_buf,RED,BLACK);
  81.                                 break;        
  82.                         }
  83.                         else
  84.                         {
  85.                                 GUI_Show12ASCII(120,160,"Send Data Failed  ",RED,BLACK);
  86.                
  87.                         }        
  88.                 }        
  89.         }
  90. }

  91. int main(void)
  92. {        
  93.         u8 i=0;
  94.         delay_init();
  95.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  96.         uart_init(9600);
  97.         TFT_Init();        
  98.         led_init();
  99.         button_init();
  100.         NRF24L01_Init();
  101.         lcd_display();
  102.         while(NRF24L01_Check())         //檢測NRF24L01是否存在
  103.         {
  104.                 GUI_Show12ASCII(140,50,"Error   ",RED,BLACK);                        
  105.         }
  106.         GUI_Show12ASCII(140,50,"Success",RED,BLACK);

  107.         while(1)
  108.         {                                
  109.                 data_pros();           
  110.                 i++;
  111. ……………………

  112. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
2.4G無線通信應用.7z (4.16 MB, 下載次數: 318)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏9 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:290380 發表于 2020-4-12 23:47 | 只看該作者
試試看,也許有用呢
回復

使用道具 舉報

板凳
ID:885482 發表于 2021-2-22 10:21 | 只看該作者

我也試試看,也許有用呢
回復

使用道具 舉報

地板
ID:837062 發表于 2021-3-13 19:48 | 只看該作者
請問可以用f103c8t6嗎
回復

使用道具 舉報

5#
ID:470227 發表于 2021-5-9 00:47 | 只看該作者
資料很有幫助!!!!學習了!!
回復

使用道具 舉報

6#
ID:937433 發表于 2021-6-14 15:41 | 只看該作者
amazing code ... nice work
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜激情福利视频 | 欧美一级在线观看 | 一级黄色免费视频 | 好了av在线 | 精品视频在线观看免费 | 四虎影| 色多多视频在线观看 | 国产三级精品视频 | www日韩 | 久在线观看 | 精品久久一区二区 | 日韩专区中文字幕 | 黑人精品xxx一区一二区 | 九九精品国产 | www.午夜| 伊人综合影院 | 欧美日韩亚洲一区二区三区 | www.天天干| 国产精品无遮挡 | 激情五月综合色婷婷一区二区 | 中文字幕一区二区三区乱码 | 国产精品九九九九 | 国产精品美女在线 | 成人在线视频免费 | 久久毛片视频 | 激情高潮到大叫狂喷水 | av片在线免费观看 | 欧美日韩小视频 | 动漫av在线 | 欧美精品综合 | 国产伦精品一区二区三区在线 | 青青草免费在线 | 日本中文在线观看 | 中文字幕在线免费看 | av免费看网站 | 欧美日韩视频 | 91久久久精品 | 亚洲成肉网 | 国产一级视频在线观看 | 欧美网站在线观看 | 韩日av在线 |