野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 675|回复: 0

[rt-thread] RT_Thread系统中打印浮点数进行显示

[复制链接]
发表于 2023-12-25 13:49:46 | 显示全部楼层 |阅读模式
RT_Thread系统中打印时出现下图所示的问题,

(rt_object_get_type((rt_object_t)thread) == RT_Object_Class_Thread) assertion failed at function:rt_thread_sleep, line number:576

此时的解决办法就是增加RT_Thread线程的内存大小
thread_adc=rt_thread_create("adc_thread", adc_entry, NULL, 256, 20,30);
改为
thread_adc=rt_thread_create("adc_thread", adc_entry, NULL, 1024, 20,30);



RT_Thread系统中如果要实现对浮点数的打印效果,可以考虑在kservice.c中创建一个专门的浮点数打印的函数,

#include <stdio.h>
/*****************************单独进行浮点数显示的函数****************************************/
#define DBG_BUFF_MAX_LEN 256
int dbg_printf(const char *fmt,...)
{
   va_list args;
   static char rt_log_buf[DBG_BUFF_MAX_LEN]={0};

   va_start(args,fmt);
   int length=vsnprintf(rt_log_buf,sizeof(rt_log_buf)-1,fmt,args);

   rt_kputs(rt_log_buf);

   return length;
}

在主函数中    调用函数即可dbg_printf("the value is:%.4f\n",vol_value_point);

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-1 08:30 , Processed in 0.121277 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表