打印
[STM32F0]

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

[复制链接]
2497|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chenjiancan|  楼主 | 2015-7-11 09:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chenjiancan 于 2015-7-11 09:59 编辑

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

粉丝