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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1733|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

15單片機(jī)進(jìn)行通過NRF24L01的雙向通信有問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:922838 發(fā)表于 2021-10-23 15:30 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這個(gè)是我寫的程序,大部分是網(wǎng)上找的程序,用的是15單片機(jī),然后兩個(gè)MCU通過NRF24L01通信,但不知道為什么就是通信不了,就接收不到數(shù)據(jù)。有沒有大佬找找我的問題。

單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define TX_ADR_WIDTH 5 //5字節(jié)寬度的發(fā)送/接收地址
  4. #define TX_PLOAD_WIDTH 4//數(shù)據(jù)通道有效數(shù)據(jù)寬度
  5. #define uchar        unsigned char
  6. #define uint        unsigned int
  7. #define out P0
  8. uchar code lcd1602[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};

  9. uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01};  // 定義一個(gè)靜態(tài)發(fā)送地址
  10. uchar RX_BUF[TX_PLOAD_WIDTH];
  11. uchar TX_BUF[TX_PLOAD_WIDTH];
  12. uchar flag;
  13. uchar bdata sta;
  14. sbit RX_DR =sta^6;
  15. sbit TX_DS =sta^5;
  16. sbit MAX_RT=sta^4;

  17. /*sbit CE   = P1^5;
  18. sbit CSN  = P1^4;
  19. sbit SCK  = P1^2;
  20. sbit MOSI = P1^1;
  21. sbit MISO = P1^3;
  22. sbit IRQ  = P1^0;*/
  23. sbit CE   = P2^4;
  24. sbit CSN  = P2^0;
  25. sbit SCK  = P2^3;
  26. sbit MOSI = P2^1;
  27. sbit MISO = P3^3;
  28. sbit IRQ  = P2^2;
  29. //SPI要使用的IO
  30. sbit MOSIO=P3^4;
  31. sbit R_CLK=P3^5;
  32. sbit S_CLK=P3^6;
  33. //SPI(NFR24L01)命令
  34. #define RFAD_REG 0x00      //定義讀命令以注冊(cè)
  35. #define WRITE_REG 0x20     //定義要寫的命令
  36. #define RD_RX_PLOAD 0x61   //定義RX有效負(fù)載寄存器地址
  37. #define WR_TX_PLOAD 0xA0   //定義TX有效負(fù)載寄存器地址
  38. #define FLUSH_TX    0xE1   //定義刷新 Tx寄存器命令
  39. #define FLUSH_RX    0xE2   //定義刷新 Rx寄存器命令
  40. #define REUSE_TX_PL 0xE3   //定義重復(fù)TX負(fù)載寄存器命令
  41. #define NOP                                        0xFF   //定義無操作

  42. //SPI(NRF24L01)寄存器
  43. #define CONFIG     0x00    //配置寄存器地址
  44. #define EN_AA      0x01    //“啟用自動(dòng)確認(rèn)”的注冊(cè)地址
  45. #define EN_RXADDR  0x02    //'Enabled RX addresses'寄存器地址
  46. #define SETUP_AW   0x03    //“設(shè)置地址寬度”寄存器地址
  47. #define SETUP_RETR 0x04    //“自動(dòng)設(shè)置。Retrans的寄存器地址
  48. #define RF_CH                         0x05                 //        '射頻信道'寄存器地址
  49. #define RF_SETUP         0x06          //射頻設(shè)置寄存器地址
  50. #define STATUS                  0x07                 //        狀態(tài)寄存器地址
  51. #define OBSERVE_TX 0x08                 //“收到Tx”寄存器地址
  52. #define CD                                 0x09    //"載波檢測(cè)'寄存器地址
  53. #define RX_ADDR_P0 0x0A    //RX地址0管道的寄存器地址
  54. #define RX_ADDR_P1 0x0B    //RX地址1管道的寄存器地址
  55. #define RX_ADDR_P2 0x0C    //RX地址2管道的寄存器地址
  56. #define RX_ADDR_P3 0x0D    //RX地址3管道的寄存器地址
  57. #define RX_ADDR_P4 0x0E    //RX地址4管道的寄存器地址
  58. #define RX_ADDR_P5 0x0F    //RX地址5管道的寄存器地址
  59. #define TX_ADDR    0x10                 //“Tx address”的寄存器地址
  60. #define RX_PW_P0         0x11                 //"RX有效載荷寬度,0管'寄存器地址
  61. #define RX_PE_P1         0x12                 //"RX有效載荷寬度,1管'寄存器地址
  62. #define RX_PE_P2   0x13                 //"RX有效載荷寬度,2管'寄存器地址
  63. #define RX_PE_P3   0x14                 //"RX有效載荷寬度,3管'寄存器地址
  64. #define RX_PE_P4   0x15                 //"RX有效載荷寬度,4管'寄存器地址
  65. #define RX_PE_P5   0x16                 //"RX有效載荷寬度,5管'寄存器地址
  66. #define FIFO_STATUS 0x17   //“FIFO狀態(tài)寄存器”的寄存器地址


  67. void delay500ms(void);
  68. void lcd_initial (void);                                //LCD1602初始化
  69. void  write_data(uchar dat);                //寫數(shù)據(jù)函數(shù)
  70. void check_busy (void);                                        //忙檢測(cè)
  71. void write_command (uchar com); //寫命令函數(shù)
  72. void string (uchar ad,uchar *s);//字符寫入,(字符開始地址,字符)
  73. void delay100ms(void);                                        //延時(shí)100MS
  74. void delay10ms(void);                                          //延時(shí)10MS
  75. void delay1ms(void);                                                //延時(shí)1ms
  76. uchar ajlb(uchar x);                        //按鍵濾波
  77. uchar JCAJ(void);                                                //檢測(cè)按鍵按下
  78. uchar HC08JS = 0;
  79. bit                flag1 = 0;
  80. sbit        E=P2^5;
  81. sbit        RW=P2^6;
  82. sbit        RS=P2^7;
  83. sbit        FMQ=P1^2;
  84. sbit        BG=P2^4;
  85. sbit  DQ=P1^0;
  86. sbit K1=P1^3;
  87. sbit K2=P1^4;
  88. sbit K3=P1^5;
  89. sbit K4=P1^6;
  90. sfr AUXR   = 0x8E;
  91. sfr T2H = 0xd6;
  92. sfr T2L = 0xd7;


  93. void lcd_initial (void)   //LCD1602初始化
  94. {
  95.         write_command(0x38);//寫入0x38(命令6):兩行顯示,5X7點(diǎn)陣,8位數(shù)據(jù)接口
  96.         _nop_();                                                //空操作
  97.         write_command(0x0C);//寫入0x38(命令4):開整體顯示,光標(biāo)關(guān),無閃爍
  98.         _nop_();                                                //空操作
  99.         write_command(0x04);//寫入0x38(命令3):
  100.         _nop_();                                                //空操作
  101.         write_command(0x01);//寫入0x38(命令1):清屏
  102.         delay1ms();
  103. }
  104. void check_busy (void)//忙檢測(cè)
  105. {
  106.         uchar dt;
  107.         do
  108.         {
  109.                 dt=0xff;                                        //dt為變量單元,初值為0xff
  110.                 E=0;
  111.                 RS=0;
  112.                 RW=1;
  113.                 E=1;
  114.                 dt=out;                                                //out為L(zhǎng)CD數(shù)據(jù)口,將out的狀態(tài)送入dt
  115.         }
  116.         while(dt&0x80);                //如果忙標(biāo)志位BF=1,繼續(xù)循環(huán)檢測(cè),等待BF=0
  117.         E=0;                                                                //BF=0,LCD不忙,結(jié)束檢測(cè)
  118. }
  119. void write_command (uchar com)//寫命令函數(shù)
  120. {
  121.         check_busy();
  122.         E=0;
  123.         RS=0;                                                                                                //RS與E同時(shí)為零時(shí)。才可以寫入命令
  124.         RW=0;
  125.         out=com;                                                                                //將命令com寫入數(shù)據(jù)口
  126.         E=1;                                                                                                //寫入命令時(shí),E為上升沿,所以E開始為0
  127.         _nop_();                                       
  128.         E=0;                                                                                                //E由高變低,LCD開始執(zhí)行命令
  129.         delay1ms();
  130. }
  131. void  write_data(uchar dat)                //寫數(shù)據(jù)函數(shù)
  132. {
  133.         check_busy();
  134.         E=0;
  135.         RS=1;
  136.         RW=0;
  137.         out=dat;
  138.         E=1;
  139.         _nop_();
  140.         E=0;
  141.         delay1ms();
  142. }
  143. void string (uchar ad,uchar *s)
  144. {
  145.         write_command(ad);
  146.         while(*s>0)
  147.         {
  148.                 write_data(*s++);                                        //輸出字符串,且指針加一
  149.                 delay1ms();
  150.         }
  151. }
  152. void string1(uchar ad,uchar a)
  153. {uchar b=0,c=0;
  154.         write_command(ad);
  155.         ad=ad+0x01;
  156.         b=a/10;
  157.         b=lcd1602[b];
  158.         write_data(b);
  159.         c=a%10;
  160.         c=lcd1602[c];
  161.         write_data(c);
  162.         
  163. }
  164. void lcd_xs(uchar a)
  165. {
  166.         if(a==0)
  167.         {string(0x83,"->NRF24L01");
  168.          string(0xC5,"HC-08");
  169.         }
  170.                 else if(a==1)
  171.         {string(0x83,"->HC-08");
  172.          string(0xC5,"EV1527");
  173.         }
  174.                 else if(a==2)
  175.         {string(0x83,"->EV1527");
  176.          string(0xC5,"NRF24L01");
  177.         }
  178. }
  179. void delay5us(void)   //誤差 0us
  180. {
  181.     unsigned char a;
  182.     for(a=12;a>0;a--);
  183. }

  184. void delay5(uchar n)                        //延時(shí)5us程序
  185. {
  186.         do
  187.         {
  188.                 delay5us();
  189.                 n--;
  190.         }
  191.         while(n);
  192. }

  193. void delay1ms(void)   //誤差 0us
  194. {
  195.     unsigned char a,b;
  196.     for(b=222;b>0;b--)
  197.         for(a=12;a>0;a--);
  198. }

  199. void delay10ms(void)   //誤差 -0.000000000001us
  200. {
  201.     unsigned char a,b;
  202.     for(b=202;b>0;b--)
  203.         for(a=147;a>0;a--);
  204. }
  205. void delay50ms(void)   //誤差 -0.000000000003us
  206. {
  207.     unsigned char a,b,c;
  208.     for(c=6;c>0;c--)
  209.         for(b=116;b>0;b--)
  210.             for(a=214;a>0;a--);
  211. }

  212. void delay100ms(void)   //誤差 -0.000000000006us
  213. {
  214.     unsigned char a,b,c;
  215.     for(c=246;c>0;c--)
  216.         for(b=116;b>0;b--)
  217.             for(a=9;a>0;a--);
  218. }

  219. //////////////////////////////////////////////////////DS18B20程序開頭
  220. void init_ds18b20(void)                        //18B20初始化
  221. {
  222.         uchar x=0;
  223.         DQ=0;
  224.         delay5(120);
  225.         DQ=1;
  226.         delay5(16);
  227.         delay5(80);
  228. }
  229. uchar readbyte(void)                //讀取1字節(jié)數(shù)據(jù)
  230. {
  231.         uchar i=0;
  232.         uchar date=0;
  233.         for(i=8;i>0;i--)
  234.         {
  235.                 DQ=0;
  236.                 delay5(1);
  237.                 DQ=1;
  238.                 date>>=1;
  239.                 if(DQ)
  240.                 date|=0x80;
  241.                 delay5(11);               
  242.         }
  243.         return(date);
  244. }
  245. void writebyte(uchar dat)                //寫1B函數(shù)
  246. {
  247.         uchar i=0;
  248.         for(i=8;i>0;i--)
  249.         {
  250.                 DQ=0;
  251.                 DQ=dat&0x01;
  252.                 delay5(12);
  253.                 DQ=1;
  254.                 dat>>=1;
  255.                 delay5(5);
  256.         }
  257. }
  258. uchar retemp(void)                        //讀取溫度
  259. {
  260.         uchar a,b,tt;
  261.         uint t;
  262.         init_ds18b20();
  263.         writebyte(0xcc);
  264.         writebyte(0x44);
  265.         init_ds18b20();
  266.         writebyte(0xcc);
  267.         writebyte(0xBE);
  268.         a=readbyte();
  269.         b=readbyte();
  270.         t=b;
  271.         t<<=8;
  272.         t=t|a;
  273.         tt=t*0.0625;
  274.         
  275.         return(tt);
  276. }
  277. ////////////////////////////////////////////DS18B20程序結(jié)尾
  278. //NFR24L01發(fā)送
  279. void init_io (void)                                                //2401初始化
  280. {
  281.         CE =0;                                                                                        //待機(jī)
  282.         CSN=1;                                                                                        //SPI禁止
  283.         SCK=0;                                                                                        //SPI時(shí)鐘置低
  284.         IRQ=1;                                                                                        //中斷復(fù)位
  285. }
  286. uchar SPI_RW(uchar byte)                        //根據(jù)spi協(xié)議,寫一節(jié)數(shù)據(jù)到2401,同時(shí)讀出一節(jié)數(shù)據(jù)
  287. {
  288.         uchar i;
  289.         for(i=0;i<8;i++)                                                        //循環(huán)8次
  290.         {
  291.                 MOSI=(byte&0x80);                                        //byte最高位輸出到MOSI
  292.                 byte<<=1;                                                                        //低一位移到最高位
  293.                 SCK=1;
  294.                 byte |=MISO;                                                        //讀MSIO到byte最低位
  295.                 SCK=0;
  296.         }
  297.         return(byte);                                                                //發(fā)回讀出的一字節(jié)
  298. }
  299. uchar SPI_RW_Reg(uchar reg, uchar value)                //寫數(shù)據(jù)value到reg寄存器
  300. {
  301.         uchar status;
  302.           CSN = 0;                   // CSN置低,開始傳輸數(shù)據(jù)
  303.           status = SPI_RW(reg);      // 選擇寄存器,同時(shí)返回狀態(tài)字
  304.           SPI_RW(value);             // 然后寫數(shù)據(jù)到該寄存器
  305.           CSN = 1;                   // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  306.           return(status);            // 返回狀態(tài)寄存器
  307. }
  308. uchar SPI_Read(uchar reg)                        //從reg寄存器讀一字節(jié)
  309. {
  310.         uchar reg_val;
  311.         CSN=0;                                                                                        //CSN置低,開始傳輸數(shù)據(jù)
  312.         SPI_RW(reg);
  313.         reg_val=SPI_RW(0);
  314.         CSN=1;
  315.         return(reg_val);
  316. }
  317. uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar bytes)        //從reg寄存器讀出bytes個(gè)字節(jié),通常用來讀取接收通道數(shù)據(jù)或接收/發(fā)送地址
  318. {
  319.         uchar status,i;
  320.         CSN=0;
  321.         status=SPI_RW(reg);
  322.         for(i=0;i<bytes;i++)
  323.         pBuf[i]=SPI_RW(0);
  324.         CSN=1;
  325.         return(status);
  326. }
  327. uchar SPI_Write_Buf(uchar reg, uchar *pBuf, uchar bytes)                //把pBuf緩存中的數(shù)據(jù)寫入到nRF24L01,通常用來寫入發(fā)射通道數(shù)據(jù)或接收/發(fā)送地址
  328. {
  329.         uchar status, i;
  330.           CSN = 0;                    // CSN置低,開始傳輸數(shù)據(jù)
  331.           status = SPI_RW(reg);       // 選擇寄存器,同時(shí)返回狀態(tài)字
  332.           for(i=0; i<bytes; i++)
  333.             SPI_RW(pBuf[i]);        // 逐個(gè)字節(jié)寫入nRF24L01
  334.           CSN = 1;                    // CSN拉高,結(jié)束數(shù)據(jù)傳輸
  335.           return(status);             // 返回狀態(tài)寄存器
  336. }

  337. void RX_Mode(void)                        //這個(gè)函數(shù)設(shè)置nRF24L01為接收模式,等待接收發(fā)送設(shè)備的數(shù)據(jù)包
  338. {
  339.         CE = 0;
  340.           SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 接收設(shè)備接收通道0使用和發(fā)送設(shè)備相同的發(fā)送地址
  341.           SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);               // 使能接收通道0自動(dòng)應(yīng)答
  342.           SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);           // 使能接收通道0
  343.           SPI_RW_Reg(WRITE_REG + RF_CH, 40);                 // 選擇射頻通道0x40
  344.           SPI_RW_Reg(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH);  // 接收通道0選擇和發(fā)送通道相同有效數(shù)據(jù)寬度
  345.           SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);            // 數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益
  346.           SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f);              // CRC使能,16位CRC校驗(yàn),上電,接收模式
  347.           CE = 1;                                            // 拉高CE啟動(dòng)接收設(shè)備
  348. }
  349. void TX_Mode(uchar * BUF)
  350. {
  351.         CE = 0;
  352.           SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH);     // 寫入發(fā)送地址
  353.           SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH);  // 為了應(yīng)答接收設(shè)備,接收通道0地址和發(fā)送地址相同
  354.           SPI_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH);                  // 寫數(shù)據(jù)包到TX FIFO
  355.           SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);       // 使能接收通道0自動(dòng)應(yīng)答
  356.           SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01);   // 使能接收通道0
  357.           SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a);  // 自動(dòng)重發(fā)延時(shí)等待250us+86us,自動(dòng)重發(fā)10次
  358.           SPI_RW_Reg(WRITE_REG + RF_CH, 40);         // 選擇射頻通道0x40
  359.           SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07);    // 數(shù)據(jù)傳輸率1Mbps,發(fā)射功率0dBm,低噪聲放大器增益
  360.           SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);      // CRC使能,16位CRC校驗(yàn),上電
  361.         CE = 1;
  362. }
  363. uchar Check_ACK(bit clear)                                //檢查接收設(shè)備有無接收到數(shù)據(jù)包,設(shè)定沒有收到應(yīng)答信號(hào)是否重發(fā)
  364. {
  365.         while(IRQ);
  366.         sta = SPI_RW(NOP);                    // 返回狀態(tài)寄存器
  367.         if(MAX_RT)
  368.                 if(clear)                         // 是否清除TX FIFO,沒有清除在復(fù)位MAX_RT中斷標(biāo)志后重發(fā)
  369.                         SPI_RW(FLUSH_TX);
  370.         SPI_RW_Reg(WRITE_REG + STATUS, sta);  // 清除TX_DS或MAX_RT中斷標(biāo)志
  371.         IRQ = 1;
  372.         if(TX_DS)
  373.                 return(0x00);
  374.         else
  375.                 return(0xff);
  376. }
  377. void NRF24L01_CX(void)                //NRF24L01程序執(zhí)行
  378. {uchar b=1,temp,a=0,temp1=0x00;
  379.         FMQ=1;
  380.         lcd_initial();                                        //調(diào)用lcd初始化
  381.         string(0x80,"24L01TXD:");
  382.         string(0xc0,"RXD:");
  383.         init_io();
  384.         while(b)
  385.         {               
  386.                 temp=retemp();
  387.                 string1(0x8A,temp);        
  388.                 TX_BUF[0] = ~temp;          // 數(shù)據(jù)送到緩存
  389.                 TX_Mode(TX_BUF);                        // 把nRF24L01設(shè)置為發(fā)送模式并發(fā)送數(shù)據(jù)
  390.                 //IRQ=0;
  391.                 a=JCAJ();
  392.                 if(a==4)
  393.                         b=0;
  394.                 Check_ACK(1);               // 等待發(fā)送完畢,清除TX FIFO
  395.                 RX_Mode();                                // 設(shè)置為接收模式
  396.                 sta = SPI_Read(STATUS);          // 讀狀態(tài)寄存器
  397.                  if(RX_DR)                                  // 判斷是否接受到數(shù)據(jù)
  398.                 {
  399.                         SPI_Read_Buf(RD_RX_PLOAD, RX_BUF, TX_PLOAD_WIDTH);  // 從RX FIFO讀出數(shù)據(jù)
  400.                         flag = 1;
  401.                 }
  402.                 SPI_RW_Reg(WRITE_REG + STATUS, sta);  // 清除RX_DS中斷標(biāo)志
  403.                 if(flag)                           // 接受完成
  404.                         {
  405.                         flag = 0;                       // 清標(biāo)志
  406.                         temp1 = RX_BUF[0];           // 數(shù)據(jù)送到temp1
  407.                 }
  408.                         string1(0xCA,temp1);
  409.                 delay50ms();
  410.                 a=JCAJ();
  411.                 if(a==4)
  412.                         b=0;
  413.         }
  414.         
  415. }uchar JCAJ(void)                                                //檢測(cè)按鍵按下
  416. {
  417.         uchar x=0,y=0;
  418.         if(K1==0)
  419.         {y=1;
  420.         x=ajlb(y);
  421.                 return x;
  422.         }
  423.         else if(K2==0)
  424.         {y=2;
  425.         x=ajlb(y);
  426.                 return x;
  427.         }
  428.         else if(K3==0)
  429.         {y=3;
  430.         x=ajlb(y);
  431.                 return x;
  432.         }
  433.         else if(K4==0)
  434.         {y=4;
  435.         x=ajlb(y);
  436.                 return x;
  437.         }
  438.         return x;
  439. }
  440. uchar ajlb(uchar x)                        //按鍵濾波
  441. {
  442.         delay10ms();
  443.         if(x==1)
  444.         {
  445.                 if(K1==0)
  446.                 {return x;}
  447.                 else
  448.                 {x=0;
  449.                  return x;}
  450.         }
  451.         else if(x==2)
  452.         {
  453.                 if(K2==0)
  454.                 {return x;}
  455.                 else
  456.                 {x=0;
  457.                  return x;}
  458.         }
  459.         else if(x==3)
  460.         {
  461.                 if(K3==0)
  462.                 {return x;}
  463.                 else
  464.                 {x=0;
  465.                  return x;}
  466.         }
  467.         else if(x==4)
  468.         {
  469.                 if(K4==0)
  470.                 {return x;}
  471.                 else
  472.                 {x=0;
  473.                  return x;}
  474.         }
  475.                 return x;
  476. }

  477. void main ()
  478. {
  479.                                                                         
  480. NRF24L01_CX();
  481. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:973695 發(fā)表于 2021-10-24 22:21 | 只看該作者
粗略看了一下,程序有幾個(gè)問題:1、兩個(gè)單片機(jī)的程序收發(fā)地址應(yīng)該設(shè)置不同;2、工作時(shí)得有握手協(xié)議來協(xié)調(diào)收發(fā)狀態(tài)的切換。
建議你先單獨(dú)寫收、發(fā)兩個(gè)程序,調(diào)試通過了再合并一起。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久久国产精品一区二区 | 国产黄色大片 | 在线日韩福利 | 成人性视频免费网站 | 欧美成人a∨高清免费观看 91伊人 | 五月激情综合 | 黄色在线观看 | 欧美日韩一区二区三区在线观看 | 日韩高清一区 | 欧洲av在线 | 国产精品免费一区二区三区四区 | 日韩中文字幕在线观看 | 国产精品美女久久久久久不卡 | 久久久久一区 | 亚洲一区中文字幕 | 日韩久草 | 日韩欧美手机在线 | 日韩aⅴ在线观看 | 欧美日韩电影一区二区 | 久久免费精品视频 | 日韩国产免费观看 | 亚洲97| 免费国产一区 | 久久免费国产 | 亚洲一区二区三区 | 人人澡人人射 | 国产成人精品a视频一区www | 日韩精品在线免费观看视频 | 精品国产18久久久久久二百 | 午夜专区| 免费看一区二区三区 | 国内精品久久久久久 | 日韩欧美视频网站 | 99亚洲精品 | 国产精品久久久久久久免费大片 | 国产一区免费 | 精品自拍视频在线观看 | 国产极品91 | 欧美aⅴ在线观看 | 久久剧场 | 欧美一级电影免费观看 |