標題: 請幫忙看下,C語言共同體哪里有誤 [打印本頁]

作者: 不再記起    時間: 2018-7-8 10:03
標題: 請幫忙看下,C語言共同體哪里有誤
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,現(xiàn)在問題是出在這部分,并沒有實現(xiàn)預(yù)想的那樣,現(xiàn)在num跟開始時coeffic的值并不一樣,請幫忙給看下是哪里寫的不對嗎??謝謝。

作者: angmall    時間: 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] );        
}


作者: STM32F103ZET6    時間: 2018-7-8 11:18
從你貼出來的這部分代碼沒看出什么問題,你首先要確認下你的eeprom單字節(jié)讀寫是否正常?做的測試“現(xiàn)在num跟開始時coeffic的值并不一樣”,不一樣在哪里?寫入的是多少?讀出來的又是多少?問題描述的更清楚,有利于他們幫你分析。
作者: xuyaqi    時間: 2018-7-8 14:46
要把有關(guān)程序放全了才好給你出主意。
作者: 不再記起    時間: 2018-7-8 15:14
STM32F103ZET6 發(fā)表于 2018-7-8 11:18
從你貼出來的這部分代碼沒看出什么問題,你首先要確認下你的eeprom單字節(jié)讀寫是否正常?做的測試“現(xiàn)在num ...

感謝回復(fù),是這樣的coeffic的值是要乘以另外一個數(shù)值,如果注釋掉這部分EEPROM的代碼的話,直接用變量coeffic運算出來的結(jié)果是正確的。 現(xiàn)在是經(jīng)過EEPROM存過以后 ,讀出來運算 得出的值都為0了 。。
作者: 不再記起    時間: 2018-7-8 18:00
angmall 發(fā)表于 2018-7-8 10:03
void eeprom_coefficient()
{       bl.f =(float)coeffic;  //     將變量coeffic賦值給共同體F  //這里 ...

謝謝您。實際的解決了問題。。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1