[STM32F0] 求助 M0 User data option bytes 两个字节的编程和访问方法?

[复制链接]
 楼主| chenjiancan 发表于 2015-7-11 09:58 | 显示全部楼层 |阅读模式
本帖最后由 chenjiancan 于 2015-7-11 09:59 编辑

大家好,我使用的芯片是 stm32f030f4p6, 需要使用到 选项字节中留给用户使用的两个字节 User data option bytes(0x1FFF F804), 我试了下面的方式,但是读回来的数据是 FF
  1. <div class="blockcode"><blockquote> uint8_t d = 0x88;
  2.        
  3.         FLASH_Unlock();
  4.         FLASH->CR |= (0X0001 << 9);
  5.         FLASH_OB_Unlock();
  6.         FLASH->CR |= (0X0001 << 9);
  7.         FLASH_ProgramOptionByteData(USER_OB_ADDR, d);
  8.        
  9.         r = FLASH->OBR;
  10.         r = *(uint32_t*)USER_OB_ADDR;
  11.         FLASH_OB_Lock();
  12.         FLASH_Lock();

手册说 Bits 23:16 Data1: User data byte 1 value (stored in FLASH_OBR[31:24])
读取 FLASH->OBR 结果是 0x00000000

请问有正确的方式是怎样?

amanda_s 发表于 2015-7-14 16:08 | 显示全部楼层
直接读FLASH_OBR寄存器就可以读出。

uint32_t temp_ob;
temp_ob=FLASH->OBR;
amanda_s 发表于 2015-7-14 16:24 | 显示全部楼层
另外,FLASH_OBR的值仅在上电复位时,才会loadFLASH中的对应option bytes的值。所以改完option bytes的值后直接读,读到的还是老的值。
643757107 发表于 2015-7-22 21:15 来自手机 | 显示全部楼层
直接读FLASH_OBR寄存器就可以读出
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

31

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

10

主题

31

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部