找回密码
 注册
关于网站域名变更的通知
查看: 295|回复: 3
打印 上一主题 下一主题

使用flash读写float类型数据时,遇到的问题

[复制链接]
  • TA的每日心情
    开心
    2022-1-21 15:22
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2023-1-28 15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    读写flash,将float类型的数据存放在flash中,
    * Z7 Q0 Q% f' [$ H+ }/ I使用的是联合体操作
    5 @/ W6 g9 u% T/ t7 y( ^union var) M7 q. s: T4 e* p3 P+ Q- M' a
    {
    1 l! d; u% n" @; t* q        float zero_angle;6 L+ ]/ A: f7 v8 o0 Y& g6 b
            uint32_t s;
    8 `- R, w; y2 f/ q6 W6 D9 Z# ^};  $ c; O* A0 z# [7 q

    6 F5 r- o9 V' j0 |) l8 j# g# e1 j1 [9 b$ O
    #define FMC_WRITE_START_ADDR    ((uint32_t)0x08004000U)/ g4 W; o6 ]7 _
    void write_page(uint32_t data)6 I. C: @+ r7 Q! c: E
    {
    / @- A2 e9 B7 @& C/ b7 E        fmc_unlock();& a5 W) @( s/ e7 C' m, [+ ]3 ?
            fmc_page_erase(FMC_WRITE_START_ADDR);1 G" o) b: h9 \! A0 ?
            fmc_word_program(FMC_WRITE_START_ADDR,data);3 m6 \& t( p7 p, d, G$ ^
            fmc_lock();
    9 i& E: B, f- b* {; }, |% N! M}% J3 U4 P) B% E8 [
    $ Q9 \7 d5 u, T  n! G* P9 _
    //获取float类型的数据
    + K! E: \$ @" X# Q/ oflo_flash.zero_angle = AS5600_ReadAngle(0x0c,0x0d);8 h$ m4 [- S" }* X9 g
    //将数据写入flash# c3 ?4 Z% b1 f
    write_page(flo_flash.s);
    7 O" |2 M4 N# N7 j# g& i8 k& b7 u; k! \1 i
    //读取数据
    # r8 J) e0 G4 `6 P( G1 @flo_flash.s = (*(volatile uint32_t *)(uint32_t)(FMC_WRITE_START_ADDR));
    & F6 X5 d" d' t; F
      u. L( O; E( s& c6 f& l: Z2 ]以上操作,在没有进行下一步的时候都没问题。- w" R0 {# @. O) W+ |

    $ x7 v7 ^, H8 \! o4 _8 Q" \3 Z使用printf函数重定向 打印浮点型数据就会将flash的数据给影响到,
    ! X( u% E( B0 Z' O1 o6 B里面的数据就会变成一个不确定的数值,且非常小。0 {$ ?9 l7 K$ r
    printf("%f\n",a);+ m6 p# @' g: Y

    . K, p' i6 k6 F! y. U但是printf 其他类型的数据,就不会受到影响。
    7 l7 B$ o$ r0 s7 p8 Z3 B
  • TA的每日心情
    开心
    2022-1-29 15:05
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2023-1-28 16:13 | 只看该作者
    a是什么?做强制类型转换试试
  • TA的每日心情
    开心
    2022-1-24 15:10
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2023-1-28 16:27 | 只看该作者
    我都是直接强制类型转换,操作简单。
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2023-1-28 16:32 | 只看该作者
    强制类型转换写起来简单。定义union对于老手来说看起来比较啰嗦,但实际上并没有增加代码量,编译器聪明着呢。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-5 12:34 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表