|
|
也不算 把 0 寫(xiě)成 1, 感覺(jué)就是 里面電荷亂了,
試驗(yàn)的最初目的,是事先在Eeprom 里面存入 512個(gè) 值,用掉一個(gè) 清掉一個(gè)。
本來(lái)是認(rèn)為,只要 我寫(xiě)0x00, 不管原來(lái)什么數(shù)據(jù),都能清掉吧? 后來(lái)發(fā)現(xiàn),永遠(yuǎn)清不完,才專門(mén)寫(xiě)了測(cè)試程序去做這樣一個(gè)試驗(yàn)。然后發(fā)現(xiàn),只要 非0xff的地方, 寫(xiě)入 0x00 90%以上都不會(huì)變 0x00 也不會(huì)保留原值,而是變成一個(gè)隨機(jī)值, 有的地方1會(huì)變 0 有的地方會(huì) 0變1, 而一旦出現(xiàn)這種狀況的 地址,在重新擦除之前,不管你怎么改寫(xiě),都無(wú)法變成 0x00 或者 0xff, 基本上,嘗試多次寫(xiě)入 任意值 之后, 用二進(jìn)制來(lái)看, 會(huì)穩(wěn)定的在類(lèi)似: 01000000 和 00010010 這樣的值之間變化。就是 大部分是0 有1~2個(gè)會(huì)是1,位置還會(huì)游走。
具體原因不清楚。也許是 Flash 的正常特性,也許是 STC 的 IAP 的漏洞缺陷? 總之, 差不多測(cè)試了 百來(lái)片(80片以上絕對(duì)有)的STC單片機(jī),幾乎覆蓋STC全系列( 除了 STC16, STC32 沒(méi)有測(cè)試過(guò),) 這個(gè)問(wèn)題一直存在。 關(guān)于手冊(cè)上的, 只能把 1 寫(xiě)成 0,這個(gè)說(shuō)法,和事實(shí)嚴(yán)重不符的問(wèn)題,也反映過(guò),總被他們按照“寫(xiě)入前必須擦除扇區(qū)” 來(lái)敷衍,從不給正面回答。
正好12#提到這個(gè)想法,我就順便說(shuō)一下親身經(jīng)歷,避免有人和我一樣中招。 |
|