標(biāo)題: 433和315無線模塊的軟件編解碼遙控程序 [打印本頁]

作者: kannimabia666    時間: 2016-10-25 19:14
標(biāo)題: 433和315無線模塊的軟件編解碼遙控程序
pic單片機(jī)的軟件編碼解碼程序:
  1. /******************************************************************************/
  2. /****************************** 遙控器接收程序 ********************************/
  3. /******************************************************************************/
  4. #include <pic.h>
  5. #include <pic1687x.h>
  6. #define remote_geshu 10
  7. /******************************************************************************/
  8. union BIT_16
  9. {
  10.   int TIMER1_REG;
  11.   unsigned char REG[2];
  12. }
  13. union BIT_32
  14. {
  15.   unsigned long data_temp_long;
  16.   unsigned char data_temp_byte[4];
  17.   }
  18. /******************************************************************************/
  19. static union BIT_16 TIMER1_TEMP;//16位定時器1
  20. static union BIT_32 data_temp;
  21. /******************************************************************************/
  22. static volatile unsigned char rec_status @ 97;
  23. static unsigned char data_cout;//接收的遙控器碼位數(shù)
  24. static unsigned char data;//接收的4位數(shù)據(jù)
  25. static unsigned int h_pulse;//高電平寬度
  26. static unsigned int l_pulse;//低電平寬度
  27. static unsigned char remote_cout;//遙控器數(shù)量
  28. static unsigned char remote_numb;//遙控器編號
  29. /******************************************************************************/
  30. static unsigned char TIMER15S1;//清除學(xué)習(xí)碼按鍵長按時間
  31. static unsigned char TIMER15S2;//學(xué)習(xí)等待時間
  32. static unsigned char TIMER15S3;//遙控器數(shù)據(jù)緩沖時間
  33. static unsigned char TIMER15S4;//LED顯示時間
  34. static unsigned char TIMER15S5;//
  35. static unsigned char TIMER15S6;//
  36. static unsigned char TIMER15S7;//
  37. static unsigned char TIMER15S8;//
  38. /******************************************************************************/
  39. static bit head @ ((unsigned)(&rec_status)*8+(0));//同步頭標(biāo)志位
  40. static bit learn @ ((unsigned)(&rec_status)*8+(1));//學(xué)習(xí)標(biāo)志位
  41. static bit recieved @((unsigned)(&rec_status)*8+(2));//接收完成標(biāo)志位
  42. static bit remote_button_status @((unsigned)(&rec_status)*8+(3));//遙控器按鍵標(biāo)志位
  43. static bit first_click_status @((unsigned)(&rec_status)*8+(4));//遙控器按鍵單擊標(biāo)志位
  44. /******************************************************************************/
  45. /********************************** 數(shù)據(jù)接收 **********************************/
  46. /******************************************************************************/
  47. unsigned char data_read(void)
  48. {
  49.   if(h_pulse>l_pulse)
  50.    {
  51.     if((l_pulse>200)&&(l_pulse<1000))
  52.      {
  53.       if(h_pulse<(l_pulse<<2)) return 1;//數(shù)據(jù)為1
  54.      }
  55.     return 2;//無效的數(shù)據(jù)
  56.    }
  57.   else if(h_pulse<l_pulse)
  58.    {
  59.     if((h_pulse>200)&&(h_pulse<1000))
  60.      {
  61.       if(l_pulse<(h_pulse<<2)) return 0;//數(shù)據(jù)為0
  62.      }
  63.     return 2;//無效的數(shù)據(jù)
  64.    }
  65. }
  66. /******************************************************************************/
  67. void clr_head(void)//清除寄存器
  68. {
  69.   data_cout=0;
  70.   head=0;
  71. }
  72. /******************************************************************************/
  73. #pragma interrupt_level 1
  74. void check_data(void)//檢測數(shù)據(jù)是否正確
  75. {
  76.   if(head)
  77.    {
  78.     switch (data_read())
  79.      {
  80.       case 0:(data_temp.data_temp_long)<<=1;;data_cout++;break;
  81.       case 1:(data_temp.data_temp_long)<<=1;(data_temp.data_temp_long)++;;data_cout++;break;               

  82. default:clr_head();break;
  83.      }
  84.     if(data_cout>23)
  85.      {
  86.       INTE=0;
  87.       recieved=1;
  88.       clr_head();//
  89.      }
  90.    }
  91. }
  92. /******************************************************************************/
  93. #pragma interrupt_level 1
  94. void check_head(void)
  95. {
  96.   if((!head)&&(!recieved))//
  97.    {
  98.     if ((h_pulse>300)&&(h_pulse<1000))
  99.      {
  100.       if((l_pulse>h_pulse*27)&&(l_pulse<h_pulse*35))       {
  101.         head=1;
  102.       }
  103.      }
  104.    }
  105. }   //end******************>>
  106. /******************************************************************************/
  107. #pragma interrupt_level 1
  108. void interrupt level_h_l(void)
  109. {
  110. /* if(RAIF)//如果是電平中斷
  111.    {        PORTA=PORTA;
  112.     RAIF=0;//
  113.     TIMER1_TEMP.REG[0]=TMR1L;
  114.     TIMER1_TEMP.REG[1]=TMR1H;        TMR1H=0;
  115.     TMR1L=0;
  116.     if(RA4)//如果是低電平中斷
  117.      {            l_pulse=TIMER1_TEMP.TIMER1_REG;
  118.       check_data();
  119.       check_head();
  120.      }
  121.     else//如果是高電平中斷
  122.      {
  123.       h_pulse=TIMER1_TEMP.TIMER1_REG;
  124.      }   
  125.    }*/
  126.   if(INTF)
  127.    {
  128.     INTF=0;
  129.     TIMER1_TEMP.REG[0]=TMR1L;
  130.     TIMER1_TEMP.REG[1]=TMR1H;
  131.     TMR1H=0;
  132.     TMR1L=0;
  133.     if(INTEDG)//低電平寬度
  134.          {
  135.       INTEDG=0;
  136.       l_pulse=TIMER1_TEMP.TIMER1_REG;
  137.       check_data();
  138.             check_head();
  139.      }
  140.     else
  141.      {
  142.       INTEDG=1;
  143.       h_pulse=TIMER1_TEMP.TIMER1_REG;          }
  144.    }
  145.   if(T0IF)//
  146.    {
  147.     T0IF=0;
  148.     TIMER15S1++;
  149.     TIMER15S2++;
  150.     TIMER15S3++;        TIMER15S4++;
  151.     TIMER15S5++;
  152.     TIMER15S6++;
  153.     TIMER15S7++;
  154.     TIMER15S8++;
  155.    } }
  156. /******************************************************************************/
  157. /********************************* 遙控器學(xué)習(xí)**********************************/
  158. /******************************************************************************/
  159. void clr_learn_reg(void)
  160. {
  161.   unsigned char n;
  162.   di();
  163.   for (n=1;n==remote_cout*4;n++)
  164.    {
  165.     eeprom_write(n,0);
  166.    }
  167.   eeprom_write(70,0);    eeprom_write(71,0);
  168.   ei(); }
  169. /******************************************************************************/
  170. unsigned char compare_data(unsigned char eep_addr)
  171. {
  172.   unsigned char n;
  173.   union BIT_32 addr_data;      for(n=0;n<4;n++)
  174.    {
  175.     addr_data.data_temp_byte[n]=eeprom_read(eep_addr+n);
  176.    }       if((data_temp.data_temp_long&0x00fffff0)==(addr_data.data_temp_long&0x00fffff0))          {
  177.        return 1;//地址匹配返回1
  178.      }
  179.        return 0;//地址不匹配返回0  }
  180. /******************************************************************************/
  181. unsigned char compare_all_data(void)
  182. {
  183.   unsigned char n;
  184.   for (n=0;n<remote_cout;n++)//在已經(jīng)學(xué)習(xí)好的遙控器地址里比較有沒有相同的
  185.    {
  186.     if (compare_data(n*4+1))//如果有相同的遙控器          {
  187.       return 1;
  188.      }
  189.    }
  190.       return 0;//沒有一個地址是相同的  }
  191. /******************************************************************************/
  192. //讀遙控器的數(shù)量
  193. void read_remote_cout(void)
  194.   {
  195.     remote_cout=eeprom_read(71);//讀出已經(jīng)學(xué)習(xí)的遙控器總數(shù)量
  196.     if(remote_cout>20)remote_cout=0; //如果EEPROM是空的則為0    }
  197. /******************************************************************************/
  198. void check_learn_pro(void)
  199. {
  200.   unsigned char n;
  201.   if(learn)
  202.    {
  203.     learn=0;        remote_numb=eeprom_read(70);//讀出現(xiàn)在可以覆蓋掉哪個遙控器的編號              

  204. read_remote_cout();////讀遙控器的數(shù)量
  205.     if(remote_numb>(remote_geshu-1))remote_numb=0;//如果遙控器的編號已經(jīng)是最大的了 則從小開始
  206.     if((remote_cout==0)||!compare_all_data())//如果還沒有遙控器學(xué)習(xí)或沒有相同地址的遙控器學(xué)習(xí)
  207.      {
  208.       di();            for(n=0;n<4;n++)
  209.        {
  210.         eeprom_write (remote_numb*4+n+1,data_temp.data_temp_byte[n]);
  211.        }                     remote_numb++;
  212.       if(remote_cout<remote_geshu+1)remote_cout++;//已經(jīng)學(xué)習(xí)好的遙控器數(shù)量
  213.       eeprom_write(71,remote_cout);//保存已經(jīng)學(xué)習(xí)好的遙控器總數(shù)量              eeprom_write

  214. (70,remote_numb);//保存已學(xué)習(xí)的遙控起編號
  215.       ei();               }
  216.    } }
  217. /******************************************************************************/
  218. void check_out_pro(void)
  219. {
  220.   read_remote_cout();//讀遙控器的數(shù)量
  221.   if(compare_all_data())
  222.    {        data=data_temp.data_temp_byte[0]&0x0f;//
  223.     TIMER15S3=0;
  224.     TIMER15S4=0;
  225.     RC4=1;
  226.    }  }
  227. /******************************************************************************/
  228. void decode_init(void)//接收初始化
  229. {
  230.   OPTION=0x87;
  231.   RBPU=0;
  232.   TMR0=0;
  233.   T0IE=1;//使能定時器0中斷   INTE=1;
  234.   TMR1ON=1;//
  235.   PORTC=0x00;//
  236.   TRISC=0x00;//
  237.   ei();//開放全局中斷  }
  238. /******************************************************************************/
  239. void check_remote_recieved(void)//檢測有無新的數(shù)據(jù)
  240. {
  241.   if(!RB1)//
  242.    {
  243.     if(TIMER15S1>30)//是否長按了3秒
  244.      {
  245.       learn=0;//
  246.       clr_learn_reg();
  247.       RC4=0;
  248.      }
  249.     else
  250.      {           learn=1;//
  251.       TIMER15S2=0;
  252.       TIMER15S4=0;
  253.       RC4=1;
  254.      }
  255.    }
  256.   else
  257.    {        TIMER15S1=0;
  258.     if(TIMER15S2>60)
  259.      {
  260.       learn=0;//
  261.      }
  262.    }
  263.   if(TIMER15S3>2)//數(shù)據(jù)保持時間
  264.    {
  265.     data=0;        TIMER15S3=0;
  266.    }
  267.   if(TIMER15S4>3)//LED顯示時間
  268.    {
  269.     RC4=0;
  270.    }
  271.   if(recieved)
  272.    {
  273.     TIMER15S3=0;
  274.     recieved=0;
  275.     TIMER15S4=0;
  276.     RC4=1;
  277.     check_learn_pro();        check_out_pro();  
  278.    }
  279.   INTE=1; }
  280. /******************************************************************************/
  281. /********************************* 控制部分程序 *******************************/
  282. /******************************************************************************/
  283. void control_init(void)
  284. {
  285.       ; }
  286. /******************************************************************************//*********

  287. ************************聲音部分程序*********************************/
  288. /******************************************************************************/
  289. /******************************************************************************/
  290. unsigned char delay(unsigned int nus)
  291. {
  292.   for(;nus>0;nus--)
  293.    {
  294.     if (recieved==1) return 0;
  295.     asm("nop");   } }
  296. /******************************************************************************/
  297. unsigned char soud_one_fre(unsigned int cout,unsigned int delay_time)//發(fā)音程序
  298. {
  299.   if(recieved==1)   return 0;
  300.   INTE=0;
  301.   for (;cout>0;cout--)
  302.    {
  303.     RC6=!RC6;
  304.     delay(delay_time);
  305.    }   RC6=0;
  306.   INTE=1; }
  307. /******************************************************************************/
  308. /*********************************急促的聲音***********************************/
  309. /******************************************************************************/
  310. unsigned char soud_one_fre0(unsigned int time,unsigned int delay_time)
  311. {
  312.   for (;time>0;time--)
  313.    {
  314.     if(recieved==1) return 0;
  315.     soud_one_fre (1000,10);
  316.     delay(delay_time);
  317.    } }
  318. /******************************************************************************/
  319. /*********************************救護(hù)的聲音***********************************/
  320. /******************************************************************************/
  321. unsigned char soud_tow_fre0(unsigned int time)//
  322. {
  323.   for (;time>0;time--)
  324.    {
  325.     if(recieved==1) return 0;
  326.     soud_one_fre(900,10);        soud_one_fre(800,30);
  327.    }  }
  328. /******************************************************************************//*********

  329. ***************************低-高音***********************************/
  330. /******************************************************************************/
  331. unsigned char soud_many_fre0(unsigned int time,unsigned int cout)
  332. {
  333.   for (;time>0;time--)
  334.    {
  335.     unsigned int delay_time;
  336.     for(delay_time=50;delay_time>10;delay_time--)
  337.      {
  338.       if(recieved==1) return 0;            soud_one_fre(cout,delay_time);
  339.      }
  340.    }  }
  341. /******************************************************************************/
  342. /************************************低-高音1**********************************/
  343. /******************************************************************************/
  344. unsigned char soud_many_fre2(unsigned int time,unsigned int cout)
  345. {
  346.   for (;time>0;time--)
  347.    {
  348.     unsigned int delay_time;
  349.     for(delay_time=30;delay_time>20;delay_time--)
  350.      {
  351.       if(recieved==1) return 0;
  352.       soud_one_fre(cout,delay_time);
  353.      }
  354.    }  }
  355. /******************************************************************************/
  356. /**********************************高—低音************************************/
  357. /******************************************************************************/
  358. unsigned char soud_many_fre1(unsigned int time,unsigned int cout)
  359. {  for (;time>0;time--)
  360.    {
  361.     unsigned int delay_time;
  362.     for (delay_time=10;delay_time<50;delay_time++)
  363.      {
  364.       if(recieved==1) return 0;
  365.       soud_one_fre(cout,delay_time);
  366.      }
  367.    }  }
  368. /******************************************************************************/
  369. /**********************************高—低音1***********************************/
  370. /******************************************************************************/
  371. unsigned char soud_many_fre3(unsigned int time,unsigned int cout)
  372. {
  373.   for (;time>0;time--)
  374.    {
  375.     unsigned int delay_time;
  376.     for(delay_time=20;delay_time<30;delay_time++)
  377.      {
  378.       if(recieved==1) return 0;
  379.       soud_one_fre(cout,delay_time);
  380.      }
  381.    }  }
  382. /******************************************************************************/
  383. /**********************************汽車報(bào)警聲**********************************/
  384. /******************************************************************************/
  385. unsigned char soud_low_high_low(unsigned int cout)
  386. {
  387.   for (;cout>0;cout--)
  388.    {
  389.     if(recieved==1) return 0;
  390.     soud_many_fre0(1,10);
  391.     soud_many_fre2(1,10);
  392.    }  }
  393. /******************************************************************************/
  394. unsigned char remote_check(void)//遙控器按鍵檢測
  395. {
  396.   if(data)//
  397.    {
  398.     if(remote_button_status)        {
  399.        return 0;
  400.       }
  401.     else
  402.       {                remote_button_status=1;
  403.        return data;//遙控器數(shù)據(jù)有效
  404.       }
  405.    }
  406.   else
  407.      {         remote_button_status=0;
  408.       return 0;
  409.      }  }
  410. /******************************************************************************/
  411. void check_remote_command(void)
  412. {
  413.   if(TIMER15S5>10)
  414.    {
  415.     first_click_status=0;//
  416.    }
  417.   switch (remote_check())
  418.    {
  419.     case 0x01:
  420.      {            RC0=!RC0;     //
  421.       soud_one_fre0(1,6000);
  422.       soud_tow_fre0(5);
  423.       delay(10000);
  424.         soud_many_fre0(5,40);
  425.       delay(10000);
  426.       soud_many_fre2(10,100);
  427.       delay(10000);        soud_many_fre1(5,40);
  428.       delay(10000);
  429.       soud_many_fre3(10,150);
  430.       delay(10000);
  431.       soud_low_high_low(5);
  432.       delay(10000);
  433.       soud_one_fre0(2,10000);            break;
  434.      }
  435.     case 0x02:RC1=!RC1;break;
  436.     case 0x04:RC2=!RC2;break;
  437.     case 0x08:
  438.      {
  439.       if(first_click_status==1)
  440.        {
  441.         RC3=!RC3;
  442.         first_click_status=0;//          break;
  443.        }
  444.       else
  445.        {
  446.         first_click_status=1;
  447.         TIMER15S5=0;           break;
  448.        }
  449.      }
  450.    default:break;
  451.    }
  452.   }
  453. /******************************************************************************/
  454. void control_pro(void)
  455. {
  456.   check_remote_command();
  457. }
復(fù)制代碼

以上代碼下載: 433和315無線模塊的軟件編解碼遙控程序.zip (9.97 KB, 下載次數(shù): 1304)

作者: lmc791204    時間: 2017-2-4 19:48
多謝,正想要這個。。。
作者: robter    時間: 2017-2-5 22:09
很好很好,正在找這個資料
作者: hlywhp123    時間: 2017-2-7 15:47
這個真需要,呵呵
作者: zqy181818    時間: 2017-3-30 15:21
實(shí)用,好資料!感謝你的分享
作者: 3760609865    時間: 2017-6-24 11:07
謝謝,正想研究一下這方面。
作者: xiuyueyuan2013    時間: 2017-6-24 19:36
好東西啊,收藏備用
作者: myaspx    時間: 2017-6-30 09:06
好東西,正想要的。。。。
作者: 阿飛啊    時間: 2017-8-8 16:31
需要需要....
作者: Chenyuzhe    時間: 2017-8-10 11:42
怎么樣可以下載啊
作者: xdl0129    時間: 2017-8-10 21:11
這是個好資料 先下載再收藏
作者: 1965501205    時間: 2017-8-12 16:07
找了好久都沒找到,感謝樓主分享,閑置的兩個模塊可以用了
作者: molo    時間: 2017-9-3 21:06
看看,謝謝分享!
作者: 無線電菜蟲    時間: 2017-9-16 09:42
有沒有模塊直接接單片機(jī)的資料啊  就是不用編解碼芯片那種
作者: taoghua    時間: 2017-9-18 02:59
很好很好,確實(shí)不錯
作者: 751998299    時間: 2017-10-11 13:17
感謝分享,不錯哈哈哈
作者: jxdianqi    時間: 2017-10-12 09:19
下來看看,謝謝分享
作者: gxlin    時間: 2017-10-16 10:54
給個電路圖就好了,我有315無線模塊,正想用。
作者: qq80405804    時間: 2017-10-21 18:07
黑幣不夠啊
作者: qq80405804    時間: 2017-10-21 18:07
這個很想要
作者: cncook    時間: 2017-11-3 19:34
沒黑幣
作者: ▓逍〓遙◆    時間: 2017-11-11 23:59

下來看看,謝謝分享
作者: xbzxjks    時間: 2017-11-13 08:23
很好,正在找這個資料
作者: www123lhs    時間: 2017-11-14 13:28
太帥了。
作者: korren    時間: 2017-11-14 13:56
正在找這個資料
作者: z714233436    時間: 2017-11-17 08:00
誰給下程序謝謝,791736464@qq.com
作者: 涼拌見手青    時間: 2017-12-1 19:46
學(xué)習(xí)了
作者: fancunwu    時間: 2017-12-2 21:35
我下載看到的程序說明:433和315無線模塊的軟件編解碼遙控程序
1:單片機(jī)軟件解碼PT2240
2:選用PIC16F877A作為軟件解碼芯片
3:單片機(jī)時鐘頻率選用外部4MHZ晶振
4:選用外部中斷腳作為編碼信號腳輸入腳
5:可解PT2240芯片(8腳的學(xué)習(xí)型編碼芯片 編碼地址位:2的20次方 重復(fù)幾率100萬分之一)
6:功能有:遙控器學(xué)習(xí)(DEMO上的S9作為學(xué)習(xí)按紐) 清除記憶(長按DEMO上的S9即可清除遙控器

地址的記憶)
7:學(xué)習(xí)遙控器數(shù)量可以設(shè)定(可根據(jù)EEPROM的大小 隨便設(shè)定)
8:輸出功能(有三路是 單擊遙控器雙穩(wěn),可以通過PORTC上的LED可以看到結(jié)果.還有一路是 雙擊遙控器雙穩(wěn))
9:可選用315MHZ/433MHZ的超再生/超外差接收模塊

作者: lyd2004888    時間: 2017-12-3 13:54
多謝,正想要這個
作者: bzf51    時間: 2018-1-1 20:40
好東西!多多分享
作者: cpfmly    時間: 2018-1-3 17:00
有這個模塊一直不會玩
作者: jingxuanyang    時間: 2018-4-9 12:28
看看怎樣,謝謝樓主了
作者: 516691654    時間: 2018-6-11 09:36
看看怎樣,謝謝樓主了
作者: lychengjun    時間: 2018-6-16 11:19
試試看看 這個好用吧
作者: ywd683    時間: 2018-6-21 19:24
好資料!感謝你的分享
作者: wenwen123    時間: 2018-7-3 13:40
多謝 ,學(xué)習(xí)了                             
作者: sammyckm    時間: 2018-7-8 08:55
感謝你的分享
作者: 虎黑    時間: 2018-7-15 16:40
贊一個,希望能派上用場
作者: wjh_004    時間: 2018-7-17 10:15
好東西,正想要的。。。。
作者: lyw007    時間: 2018-9-17 21:26
程序只有解碼沒有編碼
作者: chengfgc    時間: 2018-11-1 10:18
下不了啊。多多學(xué)習(xí)!。。。!
作者: hed    時間: 2018-11-1 17:19
看一下吧,學(xué)習(xí)
作者: licpro    時間: 2018-11-9 18:32
謝謝分享

作者: LCY30520    時間: 2018-11-20 11:21
很好很好,正在找這個資料

作者: WFX777888    時間: 2018-11-23 14:20
實(shí)用,好資料!感謝你的分享
作者: 無聊到處逛    時間: 2018-11-25 10:16
剛好,要用來研究一下,謝謝了
作者: lgy123    時間: 2018-12-3 20:29

正在找這個資料
作者: lgy123    時間: 2018-12-8 10:40
多謝,正想要這個。。。
作者: cj236769673    時間: 2019-1-13 01:16
謝謝分享,正需學(xué)習(xí)
作者: 1832958998    時間: 2019-3-9 17:36
正需要,謝謝了
作者: chengfgc    時間: 2019-3-12 09:57
希望資料有用,非常感謝分享!!!
作者: gaoyang9992006    時間: 2019-3-24 12:54
看看能否使用。。。
作者: aking991    時間: 2019-3-25 09:02
謝謝分享,測試看看
作者: zwx1995    時間: 2019-5-18 10:45
多謝
作者: ccc0210    時間: 2019-6-27 11:05
很好,學(xué)習(xí)了
作者: 郭龍·    時間: 2019-7-16 15:38
不錯不錯 很有用

作者: loalt    時間: 2019-7-17 16:06
學(xué)習(xí)了,不錯的資源
作者: Hnmtc    時間: 2019-9-14 09:33
很好很好,正在找這個資料

作者: 秋風(fēng)涼    時間: 2019-11-5 14:55
下個看看能用的上不
作者: kmdyc    時間: 2019-11-13 10:52
收藏下,謝謝lz分享
作者: 13534702358    時間: 2019-12-21 23:26
只有解碼 沒有編碼
作者: hxszrb    時間: 2020-3-17 15:02
很好,正在找這個資料
作者: 陳石軍    時間: 2020-3-17 16:55
學(xué)習(xí)有用的東西
作者: 270497470    時間: 2020-3-17 19:09
是一個word文件,沒有電路圖?單片機(jī)怎樣接,有朋友試成功了嗎?
作者: zlsysq    時間: 2020-3-17 20:56
感謝分享
作者: wyh718    時間: 2020-5-17 23:41
正在找這個資料
作者: wyh718    時間: 2020-5-18 17:20
感謝分享
作者: fj51hei    時間: 2021-6-12 12:10
static bit learn @ ((unsigned)(&rec_status)*8+(1));//學(xué)習(xí)標(biāo)志位   樓主,這是位定義?怎么理解這個語法,能幫忙解釋下,謝了
作者: mcr123    時間: 2021-12-22 23:12
找了這么久,終于找到了,感謝,感謝!
作者: yang03777    時間: 2022-2-10 16:17
要是有電路圖就好了
作者: zbysir51888    時間: 2022-9-1 19:03

收藏下,謝謝lz分享
作者: qidiao007    時間: 2023-5-17 10:52
帶編碼程序嗎?
作者: nanfuB    時間: 2023-7-12 21:17
看看,PICC忘了,再復(fù)習(xí)一下
作者: 量子工業(yè)    時間: 2023-10-25 21:25
若用76~108MHz,和433 315比,是不是傳輸效果更好呢?速率不要求太高




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1