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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

nrf905 stm32自帶spi接口控制 驅動程序下載

[復制鏈接]
跳轉到指定樓層
樓主
nrf905的stm32驅動程序,stm32單片機自帶的spi接口控制的

完整源碼下載:
32自帶spi接口控制.zip (9.02 MB, 下載次數: 45)



發送程序部分預覽:
  1. #include "NRF905.h"
  2. #include "bsp_SPI_nrf.h"
  3. #include "stm32f10x_spi.h"

  4. void nrf_GPIO_Config(void)
  5. {
  6.         //定義一個GPIO InitTypeDef類型的結構體
  7.         GPIO_InitTypeDef GPIO_InitStructure;
  8.         //開啟GPIOB的外設時鐘
  9.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  10.        
  11. //---------------nrf905 IO output-------------------------       
  12.         //選擇要控制GPIO的引腳
  13.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_10; //en,pwr,ce,led
  14.         //設置引腳為通用推挽輸出
  15.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
  16.         //設置引腳速率為50MHz
  17.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  18.         //調用庫函數,初始化GPIOB9
  19.         GPIO_Init(GPIOB,&GPIO_InitStructure);
  20.         GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_10);
  21.                
  22. //---------------nrf905 IO input-------------------------
  23.                 //選擇要控制GPIO的引腳
  24.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_8|GPIO_Pin_7; //am, dr ,cd       
  25.         //設置引腳為上拉輸入
  26.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                  
  27.         GPIO_Init(GPIOB,&GPIO_InitStructure);       
  28. }

  29. //****nrf905???????********//
  30. u8 code_config[10]=
  31. { 0x4c, //????430mhz
  32.         0x0c, //????10db,?????,???????
  33.         0x44, //???????4??
  34.         0x01, 0x01,//???????????1??
  35.         0xb2, 0xb2, 0xb2,0xb2,//接收地址
  36.         0x58  //?????,16m??,crc??,8?crc??
  37. };   

  38. void delay_xms(u16 xms)                //??xms??
  39. {          
  40.   u16 i=0;     
  41.         while(xms--)   
  42.         {
  43.     i=12000;   
  44.                 while(i--);     
  45.         }
  46. }

  47. u8 SPI_NRF_RW(u8 dat)
  48. {         
  49.    /* 當 SPI發送緩沖器非空時等待 */
  50.   while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_TXE) == RESET);
  51.   
  52.    /* 通過 SPI2發送一字節數據 */
  53.   SPI_I2S_SendData(SPI2, dat);

  54.    /* 當SPI接收緩沖器為空時等待 */
  55.   while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);

  56.   /* Return the byte read from the SPI bus */
  57.   return SPI_I2S_ReceiveData(SPI2);
  58. }

  59. void init_nrf905(void)
  60. {        u8 i;
  61.         nrf_GPIO_Config();
  62.         ce(0);
  63.         en(0);
  64.        
  65.         delay_xms(2);
  66.         csn(0);//delay_xms(1);
  67.         SPI_NRF_RW(WC);
  68.         for (i=0;i<10;i++)
  69.         {        SPI_NRF_RW(code_config[i]);
  70.         }
  71.         csn(1);
  72. }


  73. u8 read_nrf905(void)
  74. { u8 pp;
  75.         ce(0);
  76.   en(0);
  77.         delay_xms(1);                                        //nRF905?????,??????,???????
  78.         csn(0);
  79.         SPI_NRF_RW(RRP);                //發送讀取指令
  80.         pp=SPI_NRF_RW(0x00);       
  81.         csn(1);       
  82.         en(0);                                                        //en???  ,dr??
  83.         ce(1);                                                        //重新進入接收模式
  84.         delay_xms(1);                                        //nRF905?????,??????,???????
  85.         return pp;
  86. }

  87. void send(u8 byte,u16 adre)  
  88. {        ce(0);
  89.         en(0);
  90.         led(1);                                                                                                               
  91.         delay_xms(1);
  92. //----------寫地址
  93.         csn(0);//delay_xms(1);
  94.         SPI_NRF_RW(WTA);           
  95.         SPI_NRF_RW(adre);       
  96.         SPI_NRF_RW(adre);
  97.         SPI_NRF_RW(adre);               
  98.         SPI_NRF_RW(adre);
  99. //        csn(1);
  100. ////---------寫數據       
  101. //csn(0);
  102.         SPI_NRF_RW(WTP);                               
  103.         SPI_NRF_RW(byte);
  104. csn(1);
  105. //---------發送       
  106.         ce(1);                                       
  107.         en(1);                                                                                                        //
  108.         while(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8));  //dr
  109. //        delay_xms(10);                                                                //
  110.         ce(0);
  111.   en(0);                                                                                                        //
  112.         delay_xms(1);
  113. csn(0);
  114.         SPI_NRF_RW(WTP);                        //
  115.         SPI_NRF_RW(0xaa);                  //
  116. csn(1);

  117.   en(0);                                                                                                        //
  118.         ce(1);                                                                                                        //進入接收模式
  119.         delay_xms(1);                                                                                //
  120. //        led(0);                                                                                                        //
  121. }

  122. void IntoReceive_Sate(void)
  123. {
  124.         en(0);                                                                                                        //
  125.         ce(1);                                                                                                        //進入接收模式
  126.         delay_xms(1);                                                                                //
  127.         led(0);               
  128. }

  129. int receive_scan(void)
  130. {
  131.         if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_7)==1)
  132.         {
  133.                         if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==1)
  134.                         {
  135.                                         if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)==1)
  136.                                         {
  137.                                                 return 1;
  138.                                         }
  139.                                         else
  140.                                                 return 0;
  141.                         }
  142.                         else
  143.                                 return 0;
  144.         }
  145.         else
  146.                 return 0;

  147. }


  148. //進入調試模式 觀察讀出的值pp是否等于寫入的配置數據
  149. void test(void)
  150. {
  151.         u16 pp,i,a;
  152.        
  153.         ce(0);
  154.   en(0);               
  155.         delay_xms(1);                                        //nRF905?????,??????,???????
  156.                
  157.                
  158.         csn(0);
  159.         SPI_NRF_RW(RTA);
  160.         pp=SPI_NRF_RW(0x00);
  161.         a=pp;
  162.         csn(1);
  163.        
  164.         csn(0);
  165.         SPI_NRF_RW(RTP);
  166.         i=SPI_NRF_RW(0xa1);
  167.         a=i;
  168.         csn(1);
  169.                                                
  170. }

  171. /*********************************************END OF FILE**********************/
復制代碼


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

使用道具 舉報

沙發
ID:675991 發表于 2020-4-11 10:47 | 只看該作者
沒調試成功你也放出來???
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久爽爽爽美女图片 | 国产精品99久久久久久人 | 日本黄色免费大片 | 国产ts人妖一区二区三区 | 伊人成人免费视频 | 久久网国产 | 亚洲乱码一区二区 | 日韩一区二区三区精品 | 蜜桃在线一区二区三区 | 我要看免费一级毛片 | 日韩免费视频一区二区 | 免费观看羞羞视频网站 | 91.com在线观看 | 日韩免费视频一区二区 | 欧美精品成人一区二区三区四区 | 国产精品电影在线观看 | 黄色片视频 | 一区二区三区四区免费观看 | 午夜视频精品 | 免费成人国产 | 欧美一区二区三区在线观看 | www国产成人免费观看视频,深夜成人网 | 中文字幕在线观看视频一区 | 国产精品久久久久久久久久久久 | 亚洲国产精品视频一区 | 日本午夜视频 | 国产97久久 | 久久综合久色欧美综合狠狠 | 久久国产成人精品国产成人亚洲 | 亚洲一区二区三区免费在线观看 | 免费视频成人国产精品网站 | 日本在线一区二区 | 久久精品视频在线观看 | 97视频网站 | 一区二区三区四区av | 欧美一区二区在线 | 美美女高清毛片视频免费观看 | 欧美一区二区三区电影 | 国产成人一区二区三区电影 | 国产精品福利网站 | 久久久精品网 |