sprintf 浮点数显示0.0

dagaoge 2012-08-12 09:03:58
加精
最近开发用了12位的ADC读取数据然后在LCD上显示,用的是C语言里面的库函数sprintf,再将结果显示到LCD上,但是只要是%f显示的都是0.000000不知道为什么。附上代码:
static void App_TaskADC (void *p_arg)
{
double a=0;
CPU_INT08U Buff[100];
while (DEF_TRUE)
{
sprintf(Buff,"ADC0:%f",3.3); //3.3浮点数测试
LCD_write_english_string(0,3,Buff); //测试是否在LCD上显示3.300000(在LCD结果显示0.000000)
OSTimeDlyHMSM(0, 0, 0,20);
sprintf((char *)Buff,"ADC1:%d",ADC_GetData(1));
for(;strlen(Buff)<9;)
strcat(Buff," ");
LCD_write_english_string(0,2,Buff);
OSTimeDlyHMSM(0, 0, 0,20);
}
}

请个为大侠帮帮小弟。谢谢!
...全文
3301 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
majorshu 2013-02-04
  • 打赏
  • 举报
回复
stack一般都要求是2的倍数的,LZ没有找到本质的原因,是要stack的起始地址对齐,才是sprintf注意的根本表因。
lr2131 2013-02-01
  • 打赏
  • 举报
回复
引用 5 楼 baiyangvb 的回复:
不建议使用sprintf类的函数,占用空间大,运行慢,使用内存多。
确实应该是这样的问题,还记得当时也遇到这样的问题,最后是重新写了个简单的sprintf解决了问题。
此染 2013-01-30
  • 打赏
  • 举报
回复
碉堡了,佩服
double2009 2012-08-19
  • 打赏
  • 举报
回复
好贴,顶一下好贴,顶一下好贴,顶一下好贴,顶一下好贴,顶一下好贴,顶一下
sunrain_spark 2012-08-18
  • 打赏
  • 举报
回复
牛人啊
beobao007 2012-08-17
  • 打赏
  • 举报
回复
遍地是强人啊!
SHENGFENGZHONG 2012-08-16
  • 打赏
  • 举报
回复
牛B人物啊你们!!!!厉害 膜拜
dajiahaowo 2012-08-16
  • 打赏
  • 举报
回复
了解了哦。。。
SoreAlice 2012-08-16
  • 打赏
  • 举报
回复
呵呵,原来是你搞的鬼呀~~~~~~
microcontroller 2012-08-15
  • 打赏
  • 举报
回复
楼上的回答的偶很好啊
langzijuewu 2012-08-15
  • 打赏
  • 举报
回复
真是很牛,彻底服了
zsc9088 2012-08-15
  • 打赏
  • 举报
回复
真是很牛,彻底服了
likelike8978 2012-08-14
  • 打赏
  • 举报
回复
大家都是人才啊
yudmf 2012-08-14
  • 打赏
  • 举报
回复
牛B人物啊你们!!!!厉害 膜拜
rickys2080 2012-08-14
  • 打赏
  • 举报
回复
大家都是人才啊
pdlsn1988 2012-08-14
  • 打赏
  • 举报
回复
大家都是人才啊
cjy505 2012-08-13
  • 打赏
  • 举报
回复
非官方的发到地方感动万分发到豆腐干反对发到发到发个
qq630420008 2012-08-13
  • 打赏
  • 举报
回复
找到原因了,是编译器的对齐和ucos的堆栈设置问题。
he94feihe94fei 2012-08-13
  • 打赏
  • 举报
回复
官方有一个EXCEL文件工具,填入你的参数,能生成消耗各种资源的列表
yrnaaa 2012-08-13
  • 打赏
  • 举报
回复
找到原因了,是编译器的对齐和ucos的堆栈设置问题。
=====================================================
高手!
加载更多回复(9)

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧