关于发送同一个数据,前后不一致的问题

2019-07-20 03:16发布

又遇到一个问题,就是用32 printf同一个数据,前后不一致。请看程序我的目的能就是读出flash的ID号,然后将其输出来,正确的ID号应该是ef4018,根据LED变红我读出ID是正确的。可是我只用一个printf最高位的e就没有了,就是只能得到ef4018;
我仔细看过,我定义的FLASHID是32位的,应该能存下这24位的。后来一直修改中发现只要连续输出两次,第二次就可以输出正确。我怀疑是不是因为我定义FLASH_ID是I0页就是volitile型,第一次读出的因为硬件bug传输不及时的原因,才会造成前后两次数据不一致。于是简单的定义成uint_32t形式,结果还是这样只有连续输出两次时,第二次才可以输出正确。


大家有过类似的情况吗,或者是有什么想法吗?等待原子哥的第三次帮助O(∩_∩)O!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。