程序如下: if ((FLASH_ReadOptionByte(0x4803) >> 8) != 0x42 ) { FLASH_Unlock(FLASH_MEMTYPE_DATA); FLASH_EraseOptionByte(0x4803); FLASH_ProgramOptionByte(0x4803, 0x42); FLASH_Lock(FLASH_MEMTYPE_DATA); } 我是这样想的,将0x4803的内容进行右移再判断是否等于0x42,但是0x4803里面存的是一个字节吧,这样的话右移8位不就是0 了,那就永远不等于0x42,这条if就一直为真。 不知道本人哪里理解错了,希望大家帮忙解答。谢谢大家。 |
回复:关于映射的一个小问题
RE:关于映射的一个小问题
RE:关于映射的一个小问题
RE:关于映射的一个小问题
RE:关于映射的一个小问题
所以是在判断高字节,如果不等于0x42,那么写入0x42,注意后面编程函数数据是u8
回复:关于映射的一个小问题
这个函数返回选项字节 OptionByte 双字节的 你可以看看这个函数原型 返回的是u16
所以是在判断高字节,如果不等于0x42,那么写入0x42,注意后面编程函数数据是u8
谢谢
RE:关于映射的一个小问题