找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2151|回复: 5
收起左侧

请帮忙看下,C语言共同体哪里有误

[复制链接]
ID:362432 发表于 2018-7-8 10:03 | 显示全部楼层 |阅读模式
50黑币
union
{ float f;
  char c[4];                                                  /共同体

}bl;


void eeprom_coefficient()
{        (float)coeffic=bl.f;  //     将变量coeffic赋值给共同体F
        eeprom_send(5 ,bl.c[0] );                  //写入EEPROM
        eeprom_send(6, bl.c[1] );
        eeprom_send(7 ,bl.c[2] ) ;
        eeprom_send(8 ,bl.c[3] );        
}
void eeprom_out_coefficient()
{
  bl.c[0]=eeprom_Receive(5);
  bl.c[1]=eeprom_Receive(6);                         //将保存的值赋num
  bl.c[2]=eeprom_Receive(7);
  bl.c[3]=eeprom_Receive(8);
  (float)num=bl.f;

}
我的目的是将float变量coeffic存入到eeprom里,后期读出来,给另一个变量unm,现在问题是出在这部分,并没有实现预想的那样,现在num跟开始时coeffic的值并不一样,请帮忙给看下是哪里写的不对吗??谢谢。

最佳答案

查看完整内容

void eeprom_coefficient() { bl.f =(float)coeffic; // 将变量coeffic赋值给共同体F //这里出问题 eeprom_send(5 ,bl.c[0] ); //写入EEPROM eeprom_send(6, bl.c[1] ); eeprom_send(7 ,bl.c[2] ) ; eeprom_send(8 ,bl.c[3] ); }
回复

使用道具 举报

ID:362432 发表于 2018-7-8 18:00 | 显示全部楼层
angmall 发表于 2018-7-8 10:03
void eeprom_coefficient()
{       bl.f =(float)coeffic;  //     将变量coeffic赋值给共同体F  //这里 ...

谢谢您。实际的解决了问题。。
回复

使用道具 举报

ID:362432 发表于 2018-7-8 15:14 | 显示全部楼层
STM32F103ZET6 发表于 2018-7-8 11:18
从你贴出来的这部分代码没看出什么问题,你首先要确认下你的eeprom单字节读写是否正常?做的测试“现在num ...

感谢回复,是这样的coeffic的值是要乘以另外一个数值,如果注释掉这部分EEPROM的代码的话,直接用变量coeffic运算出来的结果是正确的。 现在是经过EEPROM存过以后 ,读出来运算 得出的值都为0了 。。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:94031 发表于 2018-7-8 14:46 | 显示全部楼层
要把有关程序放全了才好给你出主意。
回复

使用道具 举报

ID:367225 发表于 2018-7-8 11:18 | 显示全部楼层
从你贴出来的这部分代码没看出什么问题,你首先要确认下你的eeprom单字节读写是否正常?做的测试“现在num跟开始时coeffic的值并不一样”,不一样在哪里?写入的是多少?读出来的又是多少?问题描述的更清楚,有利于他们帮你分析。

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:155507 发表于 2018-7-8 10:03 | 显示全部楼层
void eeprom_coefficient()
{       bl.f =(float)coeffic;  //     将变量coeffic赋值给共同体F //这里出问题
        eeprom_send(5 ,bl.c[0] );                  //写入EEPROM
        eeprom_send(6, bl.c[1] );
        eeprom_send(7 ,bl.c[2] ) ;
        eeprom_send(8 ,bl.c[3] );        
}

评分

参与人数 2黑币 +85 收起 理由
admin + 80 回帖助人的奖励!
不再记起 + 5 很给力!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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