你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

用IAR测试stm8s003的 printf,无法打印小数点?

[复制链接]
大大的西瓜 提问时间:2021-4-2 21:09 / 未解决

如题,无法输出小数点,IAR还要怎么设置??
double y=0;
y=34.56;
printf("\r\n Printf_Number1 = %0.1f \r\n", y);

int fputc(int ch, FILE *f)
{
  Uart1_SendData(ch);
  return ch;
}


1.jpg 2.jpg



收藏 评论2 发布时间:2021-4-2 21:09

举报

2个回答
不过六级不改网名 回答时间:2021-4-5 13:40:21
1.你的函数input的返回值类型是整型啊,首先输出小数是不可能的·
int fputc(int ch, FILE *f)
{
  Uart1_SendData(ch);
  return ch;
}
2printf函数打印输出,要指定数据以小数形式打印输出,这是对的,所以用uart1串口的函数返回值类型应该错了
dechuan 回答时间:2021-4-5 16:48:25
不过六级不改网名 发表于 2021-4-5 13:40
1.你的函数input的返回值类型是整型啊,首先输出小数是不可能的·
int fputc(int ch, FILE *f)
{

好的,我在试试,已经通过另外的方法解决了,

void PrintFloat(float value)        //浮点输出三位小数点
{
    int tmp,tmp1,tmp2,tmp3;
    tmp = (int)value;
    tmp1=(int)((value-tmp)*10)%10;
    tmp2=(int)((value-tmp)*100)%10;
    tmp3=(int)((value-tmp)*1000)%10;
    printf("value=%d.%d%d%d\r\n",tmp,tmp1,tmp2,tmp3);
}

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版