OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 492|回复: 0

RT_Thread系统中打印浮点数进行显示

[复制链接]

17

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1610
金钱
1610
注册时间
2017-10-8
在线时间
203 小时
发表于 2023-12-25 13:51:07 | 显示全部楼层 |阅读模式
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);


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-16 10:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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