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

標題: 用的STC8H1K08的單片機,把IO接收到的幾個字節的數據存入內部eeprom,請大家指點 [打印本頁]

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

test.zip

113.07 KB, 下載次數: 21

模擬串口,eeprom存儲


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

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






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