Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
caihaitao
这家伙很懒,什么也没写!
注册于 4年前
回答
20
文章
0
关注者
0
关注TA
向TA提问
发私信
TA的回答
问
rt_thread_detach() 函数代码咨询
发布于3年前
是在考虑下面的情况么? 如果传入的线程是动态方式分配的线程句柄,在没有开启RT_DEBUG宏的情况下,Assert就不会产生;这个时候else分支的内容就会得到执行。 但是,这种情况是用户使用错误的情况。
问
终端出现错误 function:rt_object_init,
发布于4年前
``` /* try to find object */ for (node = information->object_list.next; node != &(information->object_list); node = node->next) { struct rt_object *obj; obj = rt_list_entry(node, struct rt_object, list); if (obj) /* skip warning when disable debug */ { RT_ASSERT(obj != object); //程序运行到这里,产生assert; } } ``` 可能的原因就是你在初始化某一个组件的时候,重复执行了相关的初始化函数;这个for循环的作用就是遍历对象容器,如果要初始化的对象已经在对象容器当中,就不用再次初始化。 仔细排查下你的代码,是否重复注册同一个I2C总线啦。
问
线程创建位置问题求助
发布于4年前
你写的函数,最后一定会执行__exit的地方的,如果上面的线程和定时器创建成功的话,那线程和定时器直接就被删除啦。这种写法有错误的, ``` void ec200_tcp_heart(void) { static rt_thread_t heart_thread_tid = RT_NULL; static rt_timer_t heart_timer_tid = RT_NULL; heart_thread_tid = rt_thread_create("heart_thread", ec200_heart_entry, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE); if (heart_thread_tid != RT_NULL) { rt_thread_startup(heart_thread_tid); rt_kprintf("heart_thread startup!\n"); } else { goto __exit; } heart_timer_tid = rt_timer_create("heart_timer", ec200_heart_timer, RT_NULL, 10, RT_TIMER_FLAG_PERIODIC); if(heart_timer_tid != RT_NULL) { rt_timer_start(heart_timer_tid); rt_kprintf("heart_timer startup!\n"); } else { goto __exit; } return ; __exit: if (heart_thread_tid) rt_thread_delete(heart_thread_tid); if(heart_timer_tid) rt_timer_delete(heart_timer_tid); } ``` 添加下return,估计执行就没问题啦。
问
软件定时器有没有定时器复位功能
发布于4年前
可以先停止: rt_timer_stop 然后,在重新设置时间;如果有需要的话: rt_timer_control 最后,再次开启: rt_timer_stop
问
rt-thread定时器应用的思考
发布于4年前
你需要确认有没有开启软件定时器的宏,在创建定时器时也要设置相关的标志。
问
RT-Thread使用的学习手册
发布于4年前
https://www.rt-thread.org/document/site/# 官方的文档中心,里面有你想要的东西
问
【回帖有奖】我准备了66份开工福袋,助你点燃2021年!(中奖名单已出)
发布于4年前
2021升职加薪
问
事件使用RT_EVENT_FLAG_CLEAR标志位无法清0
发布于4年前
根据你的代码,LED灯应该是常亮的。 ```c static void thread2_entry(void *parameter) { rt_event_send(&event, KEY1_FLAG); //线程运行会发送一次事件,之后此线程就结束了 } static void thread1_entry(void *parameter) ``` 函数里面会接收到一次事件之后,如果能够接收成功,则点亮LED,延时之后,会再次接收事件,但是发送事件的线程已经运行结束了,没法再次发送事件了。 所以,LED灯是常亮的。
问
如何获取消息队列消息数?
发布于4年前
可以通过获取rt_messagequeue结构体变量中的entry成员变量,我查看了nano的源代码,里面没有提供获取当前消息数量的函数。
问
RT_NAME_MAX引发的惨案
发布于4年前
在大点的项目中长度为8是不够的,建议将RT_NAME_MAX宏设置为16
问
ulog组件能否输出float类型数据?
发布于4年前
在一个群里已经找到答案了。谢谢大家。
问
kservice.c中为什么重新实现了C库的一部分函数?
发布于4年前
目的可能就是不依赖C库吧。有些编译器使用的C库版本还不一样。
问
gpio 引脚一直进中断,请问怎么办呢?
发布于4年前
中断处理函数中有没有清楚中断标志,STM32系列的芯片如果没有清楚中断标志的话,会一直向CPU请求中断。
问
rt-thread线程问题。
发布于4年前
线程优先级那个高? 新建线程处理函数中有没有使用可能导致上下文切换的API函数。 如果新建线程的优先级高,在处理函数中也没有调用引起线程切换的API函数;那就会在新建线程的处理函数中一直循环执行。
问
临界区和关中断,是否需要同时使用?
发布于4年前
rt_enter_critical(); //可以省略 关闭中断之后,SysTick的中断也被屏蔽了,暂时无法得到执行。不会发生线程调度。
«
1
2
»
TA的主页
TA的回答
TA的提问
TA的文章
TA的粉丝
TA的关注
会员统计
注册于 4年前
个人主页被 2715 人浏览
回到
顶部
发布
问题
投诉
建议
问 rt_thread_detach() 函数代码咨询