上一講的代碼中,我們只需重點關(guān)注“UART_E2Write();”和“UART_E2Read();”,其他代碼都與前幾講的“液晶屏與串口”的代碼思路一樣。
1.寫函數(shù)分析
首先先分析“UART_E2Write();”。
判斷字符串的前部分是否為“E2Write:”然后讀取出要在EEPROM哪個地址開始寫入數(shù)據(jù),k則是記錄了要寫多少了字節(jié)進去,RXDBUF[j+12]之后的數(shù)據(jù)就是代表真正要寫進去的數(shù)據(jù)。
比如我們在電腦端窗口發(fā)送如下字符串:E2Write:084,I love learning SCM
前面的字符串判斷通過,然后是確定要寫入的起始地址,地址是84(全部地址是0~255),
記住不能只單單寫“E2Write:84,I love learning SCM”,不能寫少一個0,
如果要寫入的起始地址為6,也要補充前面的兩個0(006),這是程序里作為判斷的要求。
K就是得到了“I love learning SCM”有多少個字符,E2BUF[j]從第0個元素開始存取字符串“I love learning SCM”。
接著把E2BUF數(shù)組的內(nèi)容寫進EEPROM,串口打印出“寫入完成!”的提示在電腦端窗口顯示出來,緊接著提示我們此時寫到了哪個地址了。
這里我們做測試,在EEPROM的第0個地址開始寫字符串數(shù)據(jù)進去
“I love learning SCM”這段字符串的字節(jié)長度為19,串口提示我們現(xiàn)在寫到了18這個地址了,也就是前面寫進的數(shù)據(jù)的地址為“0~18”,我們想接著寫字符串連著的話,就從019開始寫。
記住,由于數(shù)組的長度有限,我們一次寫入的數(shù)據(jù)不要超過100個字節(jié)
2.讀函數(shù)分析
“UART_E2Read();”的分析就比較簡單了,首先判斷字符串“E2Read:”是否正確,然后再確定要從EEPROM的哪個地址開始讀,n就是確定要讀出多少個字節(jié)數(shù)據(jù),如果要讀15個數(shù)據(jù),必須寫015,原理與前面一樣。接著是把從EEPROM讀出的數(shù)據(jù)先暫存在E2BUF數(shù)組中,然后再把E2BUF數(shù)組的內(nèi)容打印出來在電腦端窗口顯示出來。
我們從002號地址開始讀13個數(shù)據(jù)出來
讀出的數(shù)據(jù)正是我們之前寫入的一部分。
3.存取信息
我們也可以在EEPROM中存入127個漢字和標點符號
我們把宋老師的一段語錄經(jīng)過修改湊齊127個漢字和標點符號,把這些內(nèi)容全部寫進EEPROM中。
內(nèi)容如下:
“對于技術(shù)來說,技術(shù)水平高低直接決定你的工資薪酬。技術(shù)如果學的不好,那工作都找不到,更談不上工資待遇了,而技術(shù)做的好,那工資就自然會高。我們不要把過多的精力關(guān)注在能掙多少錢上,而應(yīng)該學會如何提高自身的技術(shù),只要技術(shù)水平高,比很多人都厲害,錢自然就找上門了。”
寫入操作如下
讀出操作如下
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程