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

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

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)入門經(jīng)驗(yàn)分享5-STC15W1K16PWM內(nèi)部EEPROM的使用

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:74187 發(fā)表于 2018-10-13 08:56 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
STC15W1K16PWM內(nèi)部EEPROM的使用--20181013

     在實(shí)際開(kāi)發(fā)中,經(jīng)常會(huì)遇到某些需要斷電需要再次上電記憶的場(chǎng)合,這就需要掉電存儲(chǔ)芯片了,最常用的EEPROM芯片就是AT24C02了,幾乎成了每一塊開(kāi)發(fā)板的標(biāo)配,但是有些時(shí)候,在一些低成本的場(chǎng)合,需要用類EEPROM或者flash來(lái)模擬EEPROM進(jìn)行存儲(chǔ),AT24C02是可以進(jìn)行字節(jié)擦寫(xiě)的,STC內(nèi)部的EEPROM是不可以字節(jié)擦寫(xiě)的,他是按照512byte一個(gè)扇區(qū)來(lái)組織的,如下圖所示,我們開(kāi)發(fā)板選擇的這塊芯片分為了22個(gè)扇區(qū)。如果你要擦除數(shù)據(jù),那么必須要一次性的擦除512字節(jié)才可以,這么難用,難用總比沒(méi)有強(qiáng)吧,在好多產(chǎn)品上,我都見(jiàn)到過(guò),好多掉電了上電依然保持的參數(shù),有沒(méi)有外置EEPROM芯片,只能用內(nèi)部的或者來(lái)模擬了,我們來(lái)寫(xiě)一個(gè)程序,程序的結(jié)果是記憶上電次數(shù),每上電一次,就累加一次,顯示在數(shù)碼管上面,OK,寫(xiě)好的代碼如下所示:

  1. /*******************************************************************************
  2. * 文件名: 數(shù)碼管顯示上電計(jì)數(shù)值
  3. * 描  述: 上電計(jì)數(shù)
  4. * 功  能:數(shù)碼管的使用
  5. * 作  者:大核桃 597627977
  6. * 版本號(hào):1.0.1(2018.09.21)
  7. *******************************************************************************/
  8. #include "stc15w.h"//頭文件
  9. #include "intrins.h"

  10. /*******************************************************************************
  11. * 文件名: 重定義
  12. * 描  述:   
  13. * 功  能:
  14. * 作  者:大核桃
  15. * 版本號(hào):1.0.1(2018.09.21)
  16. *******************************************************************************/
  17. typedef unsigned char uint8;
  18. typedef unsigned int  uint16;
  19. typedef unsigned long uint32;

  20. /*******************************************************************************
  21. * 文件名:共陽(yáng)數(shù)碼管真值表
  22. * 描  述:
  23. * 功  能:
  24. * 作  者:大核桃
  25. * 版本號(hào):1.0.1(2018.09.21)
  26. *******************************************************************************/
  27. code uint8 LedChar[] = {
  28.         0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
  29.         0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
  30. };

  31. uint16 counter;        //記憶上電次數(shù),最大65535

  32. /*******************************************************************************
  33. * 文件名:單獨(dú)位定義
  34. * 描  述:   
  35. * 功  能:
  36. * 作  者:大核桃
  37. * 版本號(hào):1.0.1(2018.09.21)
  38. *******************************************************************************/
  39. sbit LED0 = P1^0;//第1組LED
  40. sbit LED1 = P1^1;//第2組LED
  41. sbit LED2 = P1^2;//第3組LED                                 
  42. sbit LED3 = P1^3;//第4組LED
  43. sbit LED4 = P1^4;//第5組LED
  44. sbit LED5 = P3^2;//第6組LED
  45. sbit LED6 = P0^0;//第7組LED
  46. sbit LED7 = P0^1;//第8組LED

  47. sbit LEDS1 = P3^3;//數(shù)碼管1
  48. sbit LEDS2 = P3^4;//數(shù)碼管2
  49. sbit LEDS3 = P3^6;//數(shù)碼管3
  50. sbit LEDS4 = P3^7;//數(shù)碼管4

  51. /*******************************************************************************
  52. * 文件名:全局變量定義區(qū)域
  53. * 描  述:
  54. * 功  能:
  55. * 作  者:大核桃
  56. * 版本號(hào):1.0.1(2017.05.23)
  57. *******************************************************************************/
  58. #define CMD_IDLE    0               //空閑模式
  59. #define CMD_READ    1               //IAP字節(jié)讀命令
  60. #define CMD_PROGRAM 2               //IAP字節(jié)編程命令
  61. #define CMD_ERASE   3               //IAP扇區(qū)擦除命令

  62. #define ENABLE_IAP  0x82            //if SYSCLK<20MHz
  63. /*******************************************************************************
  64. * 文件名:函數(shù)前置聲明
  65. * 描  述:   
  66. * 功  能:
  67. * 作  者:大核桃
  68. * 版本號(hào):1.0.1(2017.05.23)
  69. *******************************************************************************/
  70. void Mcu_Port_Init();
  71. void LedScan();
  72. void Delay500ms(); //24MHZ
  73. void Time0_Init();//定時(shí)器0
  74. void IapIdle();
  75. uint8 IapReadByte(uint16 addr);
  76. void IapProgramByte(uint16 addr, uint8 dat);
  77. void IapEraseSector(uint16 addr);
  78. #define Delay()                {_nop_();_nop_();_nop_();_nop_();}

  79. /*******************************************************************************
  80. * 文件名
  81. * 描  述: 主函數(shù)  
  82. * 功  能:入口
  83. * 作  者:大核桃
  84. * 版本號(hào):1.0.1(2017.05.23)
  85. *******************************************************************************/
  86. void main(void)
  87. {                                       
  88.         counter = IapReadByte(0x0000);//讀取數(shù)據(jù)
  89.         counter++;//寫(xiě)

  90.         Mcu_Port_Init();//IO上電初始化
  91.         Time0_Init();

  92.         IapEraseSector(0x0000);//擦除數(shù)據(jù)
  93.         IapProgramByte(0x0000, counter);//寫(xiě)入數(shù)據(jù)


  94.         while(1);
  95. }

  96. /*******************************************************************************
  97. * 文件名:void LedScan()
  98. * 描  述: LED刷新
  99. * 功  能:
  100. * 作  者:大核桃
  101. * 版本號(hào):1.0.1(2017.05.23)
  102. *******************************************************************************/
  103. void LedScan()
  104. {
  105.         static uint8 i = 0;

  106.         P2 = 0Xff;
  107.         switch(i)
  108.         {
  109.                 case 0: LEDS4 = 0;LEDS1 = 1;P2 = LedChar[counter / 1000 % 10];i++;break;
  110.                 case 1: LEDS1 = 0;LEDS2 = 1;P2 = LedChar[counter / 100 % 10];i++;break;
  111.                 case 2: LEDS2 = 0;LEDS3 = 1;P2 = LedChar[counter / 10 % 10];i++;break;
  112.                 case 3: LEDS3 = 0;LEDS4 = 1;P2 = LedChar[counter % 10];i = 0;break;

  113.                 default:break;
  114.         }
  115. }
  116. /*******************************************************************************
  117. * 文件名:void Time0_Init()
  118. * 描  述: 定時(shí)器0初始化
  119. * 功  能:10毫秒@11.0592MHz
  120. * 作  者:大核桃
  121. * 版本號(hào):1.0.1(2017.05.23)
  122. *******************************************************************************/
  123. void Time0_Init(void)
  124. {
  125.         AUXR &= 0x7F;                //定時(shí)器時(shí)鐘12T模式
  126.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  127.         TMOD |= 0X01;      //確保不干擾其他配置
  128.         TH0 = 0xDC;                //設(shè)置定時(shí)初值
  129.         TL0 = 0x00;                //設(shè)置定時(shí)初值
  130.         ET0 = 1;
  131.         TR0 = 1;                //定時(shí)器0開(kāi)始計(jì)時(shí)
  132.         EA = 1;               
  133. }
  134. /*******************************************************************************
  135. * 文件名:
  136. * 描  述: 中斷函數(shù)
  137. * 功  能:10毫秒@11.0592MHz
  138. * 作  者:大核桃
  139. * 版本號(hào):1.0.1(2017.05.23)
  140. *******************************************************************************/
  141. void ET0_IRQHandler() interrupt 1
  142. {
  143.         TH0 = 0xDC;                //設(shè)置定時(shí)初值
  144.         TL0 = 0x00;                //設(shè)置定時(shí)初值
  145.         LedScan();               
  146. }
  147. /*******************************************************************************
  148. * 文件名:void Mcu_Port_Init()
  149. * 描  述: io初始化
  150. * 功  能:
  151. * 作  者:大核桃
  152. * 版本號(hào):1.0.1(2017.05.23)
  153. *******************************************************************************/
  154. void Mcu_Port_Init()
  155. {
  156.         //將P0口低二位配置為推挽輸出
  157.         //234567位配置位高阻輸入
  158.         P0M1 = 0xFC;//1111 1100
  159.         P0M0 = 0X03;//0000 0011
  160.         //P0 = 0X01;//第6個(gè)
  161.         //P0 = 0X02;//第7個(gè)
  162.         //高3位配置高阻輸入,用作模擬口
  163.         //其他配置推挽輸出,驅(qū)動(dòng)LED
  164.         P1M1 = 0xE0;//1110 0000
  165.         P1M0 = 0X1F;//0001 1111
  166.         //P2口配置準(zhǔn)雙向口
  167.         P2M1 = 0X00;
  168.         P2M0 = 0X00;
  169.         P2 = 0Xff; //上電為1111 1111

  170. //        //P54,P55口為推挽輸出
  171.         P5M1 = 0X00;
  172.         P5M0 = 0X00;
  173.         P5 = 0xFF;

  174.         //P37,P36,3.2,P3.3 P3.4口為推挽輸出
  175.         P3M1 = 0X00;
  176.         P3M0 = 0XFC;
  177.         P3 = 0X23; //0010 0111//第5個(gè)LED端口
  178.         
  179.         LED0 = 0;//第1組LED,如果使能請(qǐng)置為1
  180.         LED1 = 0;
  181.         LED2 = 0;
  182.         LED3 = 0;
  183.         LED4 = 0;
  184.         LED5 = 0;
  185.         LED6 = 0;
  186.         LED7 = 0;        
  187. }

  188. /*******************************************************************************
  189. * 文件名:void Delay500ms()                //@24.000MHz
  190. * 描  述:Y5內(nèi)核延時(shí)
  191. * 功  能:
  192. * 作  者:大核桃
  193. * 版本號(hào):1.0.1(2017.05.23)
  194. *******************************************************************************/
  195. void Delay500ms()                //@24.000MHz
  196. {
  197.         unsigned char i, j, k;

  198.         _nop_();
  199.         _nop_();
  200.         i = 46;
  201.         j = 153;
  202.         k = 245;
  203.         do
  204.         {
  205.                 do
  206.                 {
  207.                         while (--k);
  208.                 } while (--j);
  209.         } while (--i);
  210. }
  211. /*******************************************************************************
  212. * 文件名:void IapIdle()
  213. * 描  述:關(guān)閉IAP
  214. * 功  能:
  215. * 作  者:大核桃
  216. * 版本號(hào):1.0.1(2017.05.23)
  217. *******************************************************************************/
  218. void IapIdle()
  219. {
  220.     IAP_CONTR = 0;                  //關(guān)閉IAP功能
  221.     IAP_CMD = 0;                    //清除命令寄存器
  222.     IAP_TRIG = 0;                   //清除觸發(fā)寄存器
  223.     IAP_ADDRH = 0x80;               //將地址設(shè)置到非IAP區(qū)域
  224.     IAP_ADDRL = 0;
  225. }
  226. /*******************************************************************************
  227. * 文件名:uint8 IapReadByte(uint16 addr)
  228. * 描  述:從ISP/IAP/EEPROM區(qū)域讀取一字節(jié)
  229. * 功  能:
  230. * 作  者:大核桃
  231. * 版本號(hào):1.0.1(2017.05.23)
  232. *******************************************************************************/
  233. uint8 IapReadByte(uint16 addr)
  234. {
  235.     uint8 dat;                       //數(shù)據(jù)緩沖區(qū)

  236.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  237.     IAP_CMD = CMD_READ;             //設(shè)置IAP命令
  238.     IAP_ADDRL = addr;               //設(shè)置IAP低地址
  239.     IAP_ADDRH = addr >> 8;          //設(shè)置IAP高地址
  240.     IAP_TRIG = 0x5a;                //寫(xiě)觸發(fā)命令(0x5a)
  241.     IAP_TRIG = 0xa5;                //寫(xiě)觸發(fā)命令(0xa5)
  242.         _nop_();                        //等待ISP/IAP/EEPROM操作完成
  243.     dat = IAP_DATA;                 //讀ISP/IAP/EEPROM數(shù)據(jù)
  244.     IapIdle();                      //關(guān)閉IAP功能

  245.     return dat;                     //返回
  246. }
  247. /*******************************************************************************
  248. * 文件名:void IapProgramByte(uint16 addr, uint8 dat)
  249. * 描  述: 寫(xiě)一字節(jié)數(shù)據(jù)到ISP/IAP/EEPROM區(qū)域
  250. * 功  能:
  251. * 作  者:大核桃
  252. * 版本號(hào):1.0.1(2017.05.23)
  253. *******************************************************************************/
  254. void IapProgramByte(uint16 addr, uint8 dat)
  255. {
  256.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  257.     IAP_CMD = CMD_PROGRAM;          //設(shè)置IAP命令
  258.     IAP_ADDRL = addr;               //設(shè)置IAP低地址
  259.     IAP_ADDRH = addr >> 8;          //設(shè)置IAP高地址
  260.     IAP_DATA = dat;                 //寫(xiě)ISP/IAP/EEPROM數(shù)據(jù)
  261.     IAP_TRIG = 0x5a;                //寫(xiě)觸發(fā)命令(0x5a)
  262.     IAP_TRIG = 0xa5;                //寫(xiě)觸發(fā)命令(0xa5)
  263.         _nop_();                        //等待ISP/IAP/EEPROM操作完成
  264.     IapIdle();
  265. }

  266. /*******************************************************************************
  267. * 文件名:void IapEraseSector(uint16 addr)
  268. * 描  述: 扇區(qū)擦除
  269. * 功  能:
  270. * 作  者:大核桃
  271. * 版本號(hào):1.0.1(2017.05.23)
  272. *******************************************************************************/
  273. void IapEraseSector(uint16 addr)
  274. {
  275.     IAP_CONTR = ENABLE_IAP;         //使能IAP
  276.     IAP_CMD = CMD_ERASE;            //設(shè)置IAP命令
  277.     IAP_ADDRL = addr;               //設(shè)置IAP低地址
  278.     IAP_ADDRH = addr >> 8;          //設(shè)置IAP高地址
  279.     IAP_TRIG = 0x5a;                //寫(xiě)觸發(fā)命令(0x5a)
  280.     IAP_TRIG = 0xa5;                //寫(xiě)觸發(fā)命令(0xa5)
  281.     _nop_();                        //等待ISP/IAP/EEPROM操作完成
  282.     IapIdle();
  283. }
復(fù)制代碼


程序上電后的執(zhí)行效果圖片如下:可以看到程序記錄上電12次,稍后我們?cè)敿?xì)的解析下這個(gè)程序。


關(guān)于數(shù)碼管的一些問(wèn)題
     一個(gè)8段的數(shù)碼管其實(shí)就是8個(gè)小燈啊,我們知道LED是有方向的,只有加正向偏置電壓才會(huì)點(diǎn)亮,正極的一端是陽(yáng)極,負(fù)極的一端是陰極,如果我們把所有的陽(yáng)極連到一個(gè)公共點(diǎn),通過(guò)給其陰極一個(gè)低電位的方法能夠點(diǎn)亮的,叫做共陽(yáng)極數(shù)碼管,那么共陰極數(shù)碼管就是倒過(guò)來(lái)了,高電平點(diǎn)亮,所有的陰極連在一起,限流電阻是友情提供的,實(shí)際是沒(méi)有的,如下圖所示:

有人可能覺(jué)得,那這8個(gè)小燈是如何排列的啊?怎么看呢?客官,您別急,我來(lái)畫(huà)一下,您就明白了。如下圖所示,共陽(yáng)極數(shù)碼管示意圖:

有了這張圖,我們來(lái)看一下程序,就好辦了,想一想,如果我要在數(shù)碼管上顯示一個(gè)數(shù)字0怎么弄呢?如果是共陽(yáng)極數(shù)碼管。我應(yīng)該讓ABCDEF都是0才可以,也即是說(shuō),點(diǎn)亮該段即可實(shí)現(xiàn),那么結(jié)合我們前面所講解的數(shù)字電路知識(shí),最高位我們不管,默認(rèn)1即可 就是說(shuō)要顯示一個(gè)0,那么八段從低到高依次是,a = 0,b = 0,c = 0,d = 0,e = 0,f = 0,g = 1,dot = 1;也就是二進(jìn)制的1100_0000,16進(jìn)制是0XC0,如果我們想要0-9這10個(gè)數(shù)字,那么是不是可以用同樣的方式,算出來(lái),好了,真值表就是這么來(lái)的,至于共陽(yáng)極,取反一下就是了。我們新建一個(gè)無(wú)符號(hào)字符型數(shù)組,將我們算好的數(shù)據(jù)放進(jìn)數(shù)組里面。
  1. /*******************************************************************************
  2. * 文件名:共陽(yáng)數(shù)碼管真值表
  3. * 描  述:
  4. * 功  能:
  5. * 作  者:大核桃
  6. * 版本號(hào):1.0.1(2018.09.21)
  7. *******************************************************************************/
  8. code uint8 LedChar[] = {
  9.         0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
  10.         0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
  11. };
復(fù)制代碼


前面為什么要加一個(gè)CODE關(guān)鍵字呢?51單片機(jī)有好多關(guān)鍵字,默認(rèn)都是藍(lán)色標(biāo)識(shí),注意,這個(gè)表示這個(gè)關(guān)鍵字在單片機(jī)系統(tǒng)中已經(jīng)有名字了,不能隨便命名,CODE關(guān)鍵字的意思是將該部分代碼放在FLASH里面,而不是放在RAM里面,節(jié)省了程序運(yùn)行空間,放在FLASH里面的變量是不能在程序運(yùn)行時(shí)改變的。


關(guān)于數(shù)碼管的掃描刷新
我們了解一個(gè)常識(shí),就是人的眼睛是不能夠分辨刷新速度小于10MS的物體的,就算變化了,你也看不出來(lái)的,最好的例子,就是,拿手機(jī)拍電視錄像,一條條的,就是因?yàn)槭謾C(jī)拍攝的速度太快,而電視畫(huà)面刷新的太慢造成的,而這樣的現(xiàn)象,我們是看不見(jiàn)的。
用數(shù)碼管來(lái)顯示數(shù)字,基本上都是動(dòng)態(tài)掃描刷新,所謂動(dòng)態(tài)掃描,也就是先在1數(shù)碼管賦值,然后切換到2數(shù)碼管,切換到3,來(lái)回切換,我們只要把刷新速度控制在10MS之內(nèi),那么人的眼睛也看不出來(lái)的,我們這個(gè)代碼就是這樣進(jìn)行處理的,如下所示;
  1. /*******************************************************************************
  2. * 文件名:void LedScan()
  3. * 描  述: LED刷新
  4. * 功  能:
  5. * 作  者:大核桃
  6. * 版本號(hào):1.0.1(2017.05.23)
  7. *******************************************************************************/
  8. void LedScan()
  9. {
  10.         static uint8 i = 0;

  11.         P2 = 0Xff;
  12.         switch(i)
  13.         {
  14.                 case 0: LEDS4 = 0;LEDS1 = 1;P2 = LedChar[counter / 1000 % 10];i++;break;
  15.                 case 1: LEDS1 = 0;LEDS2 = 1;P2 = LedChar[counter / 100 % 10];i++;break;
  16.                 case 2: LEDS2 = 0;LEDS3 = 1;P2 = LedChar[counter / 10 % 10];i++;break;
  17.                 case 3: LEDS3 = 0;LEDS4 = 1;P2 = LedChar[counter % 10];i = 0;break;

  18.                 default:break;
  19.         }
  20. }
復(fù)制代碼

我們用到了SWITCH語(yǔ)句,SWITCH是一條多選一語(yǔ)句,以CASE為分支,break語(yǔ)句作為結(jié)束。我們來(lái)看下開(kāi)發(fā)的原理圖,4個(gè)數(shù)碼管分別是NLED0,NLED1,NLED2,NLED3,這個(gè)段碼和位碼是如何選擇的呢?用萬(wàn)用表的二極管檔位,我們知道二極管是單向?qū)щ姷模覀冇种勒蚱檬强梢渣c(diǎn)亮小燈的,不斷的變換萬(wàn)用表的表筆,將亮的段位和引腳記下來(lái),按照提供的數(shù)碼管引腳圖就可以分出段碼和位碼來(lái)。

如果我們要顯示一個(gè)1,打開(kāi)對(duì)應(yīng)的IO,那么我們只要對(duì)P2賦值P2 = LedChar[1]就好了;可是在實(shí)際應(yīng)用中,我們需要顯示的更加復(fù)雜,因此,只能這樣動(dòng)態(tài)進(jìn)行賦值了,新建一個(gè)counter變量,然后將最低位的數(shù)碼管顯示個(gè)位,第二個(gè)數(shù)碼管顯示10位,第三個(gè)數(shù)碼管顯示百位,第四個(gè)數(shù)碼管顯示千位,依次這樣,相除取余數(shù)即可實(shí)現(xiàn)。


關(guān)于內(nèi)部EEPROM
這個(gè)代碼,是從STC的客戶端上復(fù)制下來(lái)的,稍微整理了一下,不需要深入學(xué)習(xí),你只要知道有多少個(gè)扇區(qū),每個(gè)扇區(qū)的起始地址,就可以了,必要時(shí)候,回來(lái)翻閱數(shù)據(jù)手冊(cè)就可以搞定,使用的時(shí)候,一定要注意,同一扇區(qū)的數(shù)據(jù)會(huì)全部被擦除掉,如果不想全部擦除,一定要寫(xiě)到不同的扇區(qū),我們實(shí)現(xiàn)的功能是,先上電讀取一次0X0000地址的數(shù)據(jù),然后我們counter++,然后我們擦除0X0000地址的數(shù)據(jù),在重新向0X0000地址寫(xiě)入一個(gè)新的數(shù)據(jù)就OK,注意,寫(xiě)入之前先擦除,不然寫(xiě)不進(jìn)去的


今天的,就到這里吧,代碼獻(xiàn)上
006 內(nèi)部EEPROM使用.rar (47.48 KB, 下載次數(shù): 141)








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

使用道具 舉報(bào)

沙發(fā)
ID:410020 發(fā)表于 2018-10-15 16:08 | 只看該作者
不錯(cuò),不錯(cuò)
回復(fù)

使用道具 舉報(bào)

板凳
ID:412788 發(fā)表于 2018-10-20 16:59 來(lái)自手機(jī) | 只看該作者
非常有用 多謝樓主
回復(fù)

使用道具 舉報(bào)

地板
ID:423217 發(fā)表于 2018-11-8 20:36 | 只看該作者
厲害了,我的哥,贊一個(gè)
回復(fù)

使用道具 舉報(bào)

5#
ID:430060 發(fā)表于 2018-11-20 17:57 | 只看該作者
厲害了,我的哥,贊一個(gè)
回復(fù)

使用道具 舉報(bào)

6#
ID:76133 發(fā)表于 2018-12-24 16:07 | 只看該作者
多謝樓主贊一個(gè)
回復(fù)

使用道具 舉報(bào)

7#
ID:378965 發(fā)表于 2019-1-14 11:14 | 只看該作者
共用一個(gè)flash 長(zhǎng)期測(cè)試是否穩(wěn)定呢?
回復(fù)

使用道具 舉報(bào)

8#
ID:378965 發(fā)表于 2019-1-14 11:15 | 只看該作者
畢竟共用一個(gè)flash 長(zhǎng)期測(cè)試是否穩(wěn)定?
回復(fù)

使用道具 舉報(bào)

9#
ID:461889 發(fā)表于 2019-1-23 14:51 | 只看該作者
多謝樓主
回復(fù)

使用道具 舉報(bào)

10#
ID:412814 發(fā)表于 2019-2-1 20:25 | 只看該作者
謝謝樓主,學(xué)習(xí)了。
回復(fù)

使用道具 舉報(bào)

11#
ID:472242 發(fā)表于 2019-3-5 00:01 | 只看該作者
好案例,值得推薦!
回復(fù)

使用道具 舉報(bào)

12#
ID:514110 發(fā)表于 2019-4-16 22:08 來(lái)自手機(jī) | 只看該作者
謝謝,有用
回復(fù)

使用道具 舉報(bào)

13#
ID:495990 發(fā)表于 2019-4-20 08:06 | 只看該作者
贊一個(gè)
回復(fù)

使用道具 舉報(bào)

14#
ID:248392 發(fā)表于 2019-5-10 11:50 | 只看該作者
非常有用 多謝樓主
回復(fù)

使用道具 舉報(bào)

15#
ID:482511 發(fā)表于 2019-6-11 07:08 來(lái)自手機(jī) | 只看該作者
謝謝分享,但共用flash穩(wěn)定嗎?
回復(fù)

使用道具 舉報(bào)

16#
ID:495792 發(fā)表于 2019-6-11 08:58 | 只看該作者
贊一個(gè)
回復(fù)

使用道具 舉報(bào)

17#
ID:399179 發(fā)表于 2019-11-22 22:04 來(lái)自手機(jī) | 只看該作者
感謝樓主分享!
回復(fù)

使用道具 舉報(bào)

18#
ID:64931 發(fā)表于 2020-3-12 11:11 | 只看該作者
多謝分享,正在找這方面資料
回復(fù)

使用道具 舉報(bào)

19#
ID:399179 發(fā)表于 2021-1-30 21:09 來(lái)自手機(jī) | 只看該作者
正在學(xué)習(xí),謝謝樓主分享!
回復(fù)

使用道具 舉報(bào)

20#
ID:976070 發(fā)表于 2022-2-4 22:13 | 只看該作者
相當(dāng)實(shí)用。正在找這方面資料。
回復(fù)

使用道具 舉報(bào)

21#
ID:1021611 發(fā)表于 2022-4-25 17:35 | 只看該作者
相當(dāng)不錯(cuò),很實(shí)用的資料
回復(fù)

使用道具 舉報(bào)

22#
ID:1049825 發(fā)表于 2022-10-31 20:23 | 只看該作者
對(duì)論壇和樓主提供的幫助感謝萬(wàn)分,有種茅塞頓開(kāi)的感覺(jué),謝了!
回復(fù)

使用道具 舉報(bào)

23#
ID:1051419 發(fā)表于 2022-11-16 22:40 | 只看該作者
counter=IapReadByte(0X0000);
counter++;這兩個(gè)怎么會(huì)報(bào)警,那里出錯(cuò)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区在线视频 | 在线观看毛片网站 | 亚洲成人精品 | 99久久久无码国产精品 | 国产精品久久久久久久久久尿 | 91免费视频 | 久久久久久久一区二区 | 麻豆亚洲 | 又爽又黄axxx片免费观看 | 午夜在线小视频 | 人人爽日日躁夜夜躁尤物 | 91婷婷韩国欧美一区二区 | 国产乱一区二区三区视频 | 色又黄又爽网站www久久 | 国产午夜视频 | 国产精品美女久久久久aⅴ国产馆 | 欧美日韩在线免费观看 | 中文字幕国产日韩 | 欧美亚洲国语精品一区二区 | 免费在线观看av网址 | 国产久 | 天天拍天天射 | 免费视频成人国产精品网站 | 一区二区在线免费观看视频 | 精品亚洲一区二区三区 | 精品伦精品一区二区三区视频 | 国产高清精品在线 | 成人激情视频在线观看 | 成人精品鲁一区一区二区 | 精品一区二区三区在线观看国产 | 国产高清免费 | 自拍视频国产 | 久久久精品一区 | 久久精品成人一区 | 日韩中文字幕视频 | 日韩视频成人 | 一级毛片免费看 | 国产精品99久久久久久动医院 | 亚洲性视频 | 视频精品一区二区三区 | 久久精品毛片 |