理解rt_thread_delay 参数的含义,特别是其时间单位: rt_tick_t 是RT-Thread 中定义的一个数据类型,用于表示系统时钟节拍的数量。系统时钟节拍(tick)是 RT-Thread 操作系统内部用于时间管理的基本单位。 如果参数不是以秒为单位,提供转换为秒的方法或公式: 由于rt_thread_delay 的参数是以时钟节拍(tick)为单位的...
staticvoidrt_thread_idle_entry(void*parameter){#ifdefRT_USING_SMPif(rt_hw_cpu_id()!=0){while(1){rt_hw_secondary_cpu_idle_exec();}}#endifwhile(1){#ifdefRT_USING_IDLE_HOOKrt_size_ti;for(i=0;i<RT_IDLE_HOOK_LIST_SIZE;i++){if(idle_hook_list[i]!=RT_NULL){idle_hook_list[i]...
二、添加RT-Thread源码(src,include,libcpu,rt_config.h) 1.在工程文件夹根目录里新建(RT-Thread)文件夹。 2.在子目录粘贴RT-Thread官网下载内核源码的src文件夹、include文件夹、libcpu下架构相关的代码(比如STM32F103使用的是arm-Cortex-M3内核)复制相应文件夹。 3.从源代码的BSP文件夹里找到相应MCU的工程配置...
[Bug] rt_thread_mdelay 不是延时的ms,是systick的时钟周期的和rt_thread_delay函数没区别 Other additional context /** This function will let current thread delay for some milliseconds. @paramtick the delay time @returnRT_EOK */ rt_err_t rt_thread_mdelay(rt_int32_t ms) { rt_tick_t tick...
调用rt_thread_delay一次会出现程序卡死,但调用两次就不会了 void Using_Water(uint16_t ms) { Water_Control(1); rt_thread_mdelay(ms); Water_Control(0); // rt_thread_mdelay(ms); } 0 2022-8-1 11:03:45 评论 淘帖 邀请回答 laisvl 相关推荐 • 退出低功耗模式后rt_thread_delay(...
11.使用定时器Delay的原理 720 播放 羽月希 合理安排时间,等于节约时间。 下载 选集(27) 自动播放 [1] 1.课程介绍 1136播放 03:25 [2] 5.简单的C函数反汇编码分析 1531播放 20:30 [3] 9.线程调度概述 1350播放 19:18 [4] 10.线程调度代码分析 ...
rt_thread_delay会导致当前线程进入阻塞,如果你只有主线程和idle线程,主线程阻塞了,那么就只有空闲线程在执行了,也就是你说的“卡死”,如果除了主线程,还有其他线程就绪,那么主线程阻塞就会执行就绪的线程,如果其他线程也是阻塞状态,那么还是会执行idle线程 @bernard rt_thread_delay后,当前线性就进入阻塞状态;这个时候...
是因为一般我们使用比如USB库,自动生成得这些里面还是使用HAL_Delay函数来进行延时,一般如果使用STM32官方推荐得FREERTOS就不用担心这个问题,因为官方已经直接适配好了,带RTOS得USB库。而我们使用得RTThread-Nano是没有适配得。所以当我使用得时候,发现一直卡死在这里 其中tickstart得值一直为0。而后......