初级会员

- 积分
- 76
- 金钱
- 76
- 注册时间
- 2014-10-22
- 在线时间
- 1 小时
|
5金钱
SD卡保存双精度数据,串口打印出来,只能显示整数部分,小数点后全是0,是SD卡写入数据的问题,还是串口输出问题?请大神帮忙小弟解决一下。
#include <stm32f10x.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "mmc_sd.h"
double buf[512];//SD卡数据缓存区
int main(void)
{u32 cnt,a;
u32 sd_size;
u8 t=0;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化
LED_Init(); //LED初始化
SD_Initialize();
//检测SD卡
if(SD_Initialize()!=0)LED1=!LED1;//DS0闪烁
else LED0=!LED0;
//识别SD卡的容量
//sd_size=SD_GetSectorCount();//得到扇区数
while(1)
{
for(cnt=0;cnt<10;cnt++){
for(sd_size=0;sd_size<10;sd_size++){
a=sd_size*cnt;
buf[sd_size]=a+0.1154;}
SD_WriteDisk(buf,cnt,1);}
if(t==30)//每6s钟执行一次
{
for(cnt=0;cnt<10;cnt++)
{
if(SD_ReadDisk(buf,cnt,1)==0)//读取MBR扇区
{
printf("SECTOR DATA:%d\n",cnt);
for(sd_size=0;sd_size<512;sd_size++)printf("%lf ",buf[sd_size]);//打印MBR扇区数据
printf("\nDATA ENDED\n");
}
}
t=0;
}
t++;
delay_ms(200);
LED0=!LED0;
}
}
|
|