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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    读写flash,将float类型的数据存放在flash中,
    2 m$ B4 u2 e; ?! k- I( w使用的是联合体操作
    & f1 C4 I1 X1 V* N% l3 Q( kunion var) ~& q  O9 ~, v* T( d# T7 d
    {
    & H2 L' d/ ]- G3 J/ J% K        float zero_angle;' C% i+ [5 y* W
            uint32_t s;
    6 i0 {9 v3 w$ {7 F( J};  
    + H7 ?2 z1 m9 ?( V/ J& W
    ( X" s9 N/ b) E6 r1 f0 [& s" i0 s
    - u1 h# E( Y* Y/ h( P: q* |#define FMC_WRITE_START_ADDR    ((uint32_t)0x08004000U), {( b: J8 ^) S$ C6 n
    void write_page(uint32_t data)
    : V- M6 n3 p4 Y  i7 W8 W4 o' s- V{
    & m& r. i3 C$ b% c, E) m        fmc_unlock();$ n& M  g2 d" r& m& w
            fmc_page_erase(FMC_WRITE_START_ADDR);, J% j8 u6 a4 Y. c
            fmc_word_program(FMC_WRITE_START_ADDR,data);# l+ S1 q% N: o
            fmc_lock();
    ! ]9 Q1 H5 O8 H( @, v# x9 v1 S}! m6 C+ C: y0 ~- t, n
    / m2 ?) {1 l+ ^; J' t8 R
    //获取float类型的数据
    % |  v2 l* j5 q3 ]0 D* cflo_flash.zero_angle = AS5600_ReadAngle(0x0c,0x0d);7 _6 D, j  [; z- @$ M/ [3 G
    //将数据写入flash* N! P7 s( O5 U( v% e7 F
    write_page(flo_flash.s);
    + ]4 H6 j5 P2 i9 \4 R$ O0 S, o; h9 o% T7 G3 c
    //读取数据
      V& W( }5 l  p1 H1 y% }, x' Sflo_flash.s = (*(volatile uint32_t *)(uint32_t)(FMC_WRITE_START_ADDR));
    9 Z8 ~/ i% I; k7 u4 N& d" i7 \  \) b) o3 H* S
    以上操作,在没有进行下一步的时候都没问题。5 V4 |% i6 w8 n
    4 {. R9 G2 k9 b& B% S' F9 v
    使用printf函数重定向 打印浮点型数据就会将flash的数据给影响到,, y; b/ \4 |( M
    里面的数据就会变成一个不确定的数值,且非常小。
    ! U: u$ M1 o7 g  q) Z# M1 ^6 Jprintf("%f\n",a);9 u' Y' g  Z- v0 L/ E
    $ |8 h, ]% A2 d+ ?* A# R
    但是printf 其他类型的数据,就不会受到影响。3 s+ p$ U1 z8 w- b9 R
  • 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-7-21 11:04 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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