做网站和做游戏哪个难,开发公司绩效指标,wordpress+定制菜单,行业信息网站建设方案说明#xff1a;记录日常使用 RT_Thread 开发时做的笔记。
持续更新中#xff0c;欢迎收藏。
1. 延时函数
1. us延时函数
rt_hw_us_delay(rt_uint32_t us);//输如数据是us
rt_hw_us_delay(200);//输入数据是us
2. ms延时函数
rt_thread_mdelay(1000);//输入数据是ms
2…说明记录日常使用 RT_Thread 开发时做的笔记。
持续更新中欢迎收藏。
1. 延时函数
1. us延时函数
rt_hw_us_delay(rt_uint32_t us);//输如数据是us
rt_hw_us_delay(200);//输入数据是us
2. ms延时函数
rt_thread_mdelay(1000);//输入数据是ms
2. 定时器函数
官网资料https://www.rt-thread.org/document/site/programming-manual/timer/timer/#_14 /* 定时器的控制块 */
static struct rt_timer timer1;
static int cnt 0;/* 定时器 1 超时函数 */
static void timeout1(void* parameter)
{rt_kprintf(定时器触发 第 %d 次\n,cnt);/* 运行 10 次 */if (cnt 9){rt_timer_stop(timer1); /*关闭定时器*/}
}int timer_static_sample(void)
{/* 初始化定时器 */rt_timer_init(timer1, timer1, /* 定时器名字是 timer1 */timeout1, /* 超时时回调的处理函数 */RT_NULL, /* 超时函数的入口参数 */1000, /* 定时长度以 OS Tick 为单位即 10 个 OS Tick */RT_TIMER_FLAG_PERIODIC|RT_TIMER_FLAG_SOFT_TIMER ); /* 周期性定时器|软件定时器 *//* 启动定时器 */rt_timer_start(timer1);return 0;
}
INIT_APP_EXPORT(timer_static_sample);/*以下是其他应用记录:在运行过程中根据需求变更定时器时间*/
uint32_t timeout;
rt_timer_control(uvled_off_time, RT_TIMER_CTRL_SET_TIME, timeout);/* 20210924 新增设置定时器时间 */
rt_timer_start(uvled_off_time); /* 启动定时器 */ 3. 获取时钟节拍 rt_tick_t rt_tick_get(void); 由于全局变量 rt_tick 在每经过一个时钟节拍时值就会加 1通过调用 rt_tick_get 会返回当前 rt_tick 的值即可以获取到当前的时钟节拍值。 此接口可用于记录系统的运行时间长短或者测量某任务运行的时间。接口函数如下
rt_tick_t rt_tick_get(void);
下表描述了 rt_tick_get() 函数的返回值 返回 描述 rt_tick 当前时钟节拍值
1.应用范例
rt_tick_t start_time 0;
start_time rt_tick_get();
2. 毫秒转换为时分秒
uint32_t sys_time,sys_hour,sys_minute,sys_second;sys_time rt_tick_get(); /* 获取时钟节拍 */
sys_second sys_time/1000;
sys_hour sys_second / 3600; /* 开机运行时间 小时 */
sys_minute sys_second % 3600 / 60; /* 开机运行时间 分 */
sys_second sys_second % 60; /* 开机运行时间 秒 */
rt_kprintf( 开机 %d 时 %d 分 %d 秒 \r\n,sys_hour,sys_minute,sys_second);
3. 获取时钟节拍(ST库函数)
HAL_GetTick();
应用timestamp 时间戳
uint32_t timestamp HAL_GetTick();
4. 计算 x 毫秒是多少时钟节拍 rt_tick_from_millisecond(timeout)
在用时钟节拍作为定时的场合下应用
rt_tick_from_millisecond(timeout) 这个函数把多少 ms 计算成系统对应的时钟节拍
如下应用案例
rt_tick_t start_time 0;
start_time rt_tick_get();
if (rt_tick_get() - start_time rt_tick_from_millisecond(timeout))
{....
}