欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

用的STC8H1K08的單片機,把IO接收到的幾個字節的數據存入內部eeprom,請大家指點

[復制鏈接]
跳轉到指定樓層
樓主
ID:1064268 發表于 2023-5-11 01:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
目前用的是STC8H1K08單片機,由于板子做的倉促,必須用IO口接收別處的串口發來的數據,也就是把IO當串口來用,目前IO已經可以接收外部USB轉TTL工具發來的數據,波特率為19200,接收到幾個字節的數據把它們放在了數組中,想把數組中的幾個字節的數據存入eeprom中并讀出來,最后把這幾個字節的數據通過另一個IO發出來。目前的問題是增加了eeprom的擦除,寫入和讀出函數后主循環while(1)跑不起來(主循環中有LED閃爍的程序),且數據不能從IO發送出去,工程已上傳到附件。請各位大佬幫忙看下哪里有問題。非常感謝!

test.zip

113.07 KB, 下載次數: 21

模擬串口,eeprom存儲

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

使用道具 舉報

沙發
ID:213173 發表于 2023-5-11 09:10 | 只看該作者
數據存入EEPRPM的主要目的是為了掉電不丟失。所以正常運行時不需要頻繁寫EEPRPM。當不得以用普通IO口當串口來用要占用不少CPU資源,會使其他程序運行不暢。哪怕只寫一個字節也得擦除整個扇區,很耗時間。建議將模擬串口收到的數據放在數組中,可以直接使用。開啟掉電中斷保存EEPROM的方法,不影響正常工作。關機或掉電時數據保存在EEPROM,供再次得電讀取使用。這里有一個技巧:開機初始化后讀取保存在EEPROM的數據,隨即刪除該扇區。掉電中斷直接寫EEPROM,無需再擦除扇區消耗時間。以IAP15W4K58S4在TX-1C開發板上實驗為例,掉電中斷寫兩個字節用時215.25us,板上電源濾波電容100uF,剩余電量從中斷開始到MCU停止工作約2.5ms。

評分

參與人數 1黑幣 +18 收起 理由
wpppmlah + 18 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:123289 發表于 2023-5-11 14:58 | 只看該作者
沙發解得好。
我的做法如沙發所說,CPU普通運行中,只將數據寫入RAM,只在掉電發生時,做一個將RAM中的數據轉移存入EEPROM的動作。當然硬件上,加有掉電檢測。

如果樓主執意要立即寫入EEPROM,要做到:
任何時刻,不要死等某個信號。
假設某個信號(如:擦除)從起動到產生需要10ms,你如果死等它,則在這10ms中,其它程序就得不到運行(如刷新顯示,串行數據……),功能必受影響。
做到不死等,問題基本就解決了。不過,這個非常考驗邏輯時序規劃能力,以及程序功底。

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表