|
只要一读取浮点数就进入了这个死循环,不知道为什么,读数据试过了空的为255没问题
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
}
}
这是我的代码:
typedef union
{
float value;
uint8_t byte[FLOAT_BYTE_NUM];
} storFloatData;
storFloatData tab[3];
/********************************************************************************************************
函数名称:
函数功能:向指定地址写入1个浮点数
详 述:
输 入:
*********************************************************************************************************/
void store_float_to_eeprom( storFloatData data,uint8_t addr )
{
uint8_t i = 0;
uint8_t a = 0;
for( i = 0; i <= FLOAT_BYTE_NUM - 1; i++ )
{
AT24CXX_WriteOneByte( addr + i, data.byte[i] );
}
return;
}
/********************************************************************************************************
函数名称:
函数功能:从指定地址读出1个浮点数
详 述:
输 入:
*********************************************************************************************************/
storFloatData read_float_from_eeprom( uint8_t addr )
{
uint8_t i = 0;
storFloatData read_data;
for( i = 0; i <= FLOAT_BYTE_NUM - 1; i++ )
{
read_data.byte[i] = AT24CXX_ReadOneByte( addr + i );
}
return read_data;
}
读操作:
tab[2] = read_float_from_eeprom(0x08);
OLED_ShowFNum(3,8,tab[2].value,1,1); //用OLED显示出来
|
|