CH546讀芯片唯一ID號會變化

????????在項目程序中直接調(diào)用官方例程的FlashReadOTPword函數(shù)讀取0x10地址的值得到ID號,并發(fā)送到電腦串口觀察數(shù)值,多次上電接收到的數(shù)值都是一樣的,排除是串口的問題。只要我修改了項目程序中其他與讀ID號毫不相關(guān)的功能后,讀出的ID號就跟之前不一樣了,將程序改回去后,讀出的ID號又和之前一樣了。

????????我還另寫了一個單獨測試ID號的程序,但測試程序修改其他與讀ID號不相關(guān)的功能并不會改變讀出的ID值。而且在先燒錄項目程序再燒錄測試程序的情況下,測試程序讀出的是ID值和項目程序的一樣,也就是說項目程序讀出的ID號變化測試程序讀出的ID號也變。但一直燒測試程序讀出的ID號是不會變的。

????????請問這是什么問題呢?另外測試程序編譯后大小為1K左右,項目程序編譯后大小為23K左右。

你程序RAM用了多少了?是不是RAM使用太多,導致堆棧出問題,讀出來的值被程序修改了。


image.png

????就用了一百多而已,應該不是堆棧的問題。因為燒測試程序和項目程序讀出來的值是一樣的,感覺是程序沒有讀到ID號存放的地址而是讀了程序存儲區(qū)的地址。

????如果是堆棧問題,那測試程序應該能讀出真正的ID號。


你說修改了某一塊 程序后就會導致讀出的ID號發(fā)生變化,修改回去后就好了,請問這個修改的程序是哪一塊程序?修改前后對RAM使用大小有造成影響嗎?


????不是說改回去就好了,是程序一樣的話讀出的ID號就一樣,不能確定讀出的是真的ID號。

????修改的是跟讀ID號無關(guān)的功能,對RAM的使用沒有影響,比如說這個版本讀一次ID號,另一個版本連讀兩次ID號,兩個版本的程序得到的ID號都是不一樣的。如下圖:

image.png


是不是讀flash的地址不對?


這個問題已經(jīng)解決了,讀16位地址就出錯,讀8位地址就是正確的。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频