我用的是0.4库, port : STM32。
介绍说定时器可以挂接软件定时器,也可挂接硬件定时器。
可是程序里没有这部分啊,而且挂接硬件定时器应该是在port部分吧,与具体MCU有关啊。
rtdef.h发现如下定义,不过不知道如何使用。
Software timer.
timer1 = rt_timer_create("timer1",
timeout1,
RT_NULL,
10,
RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_SOFT_TIMER);
Hardware timer.
timer1 = rt_timer_create("timer1",
timeout1,
RT_NULL,
10,
RT_TIMER_FLAG_PERIODIC | RT_TIMER_FLAG_HARD_TIMER);
The default is hardware timer.
我以前也是这么用的,我的意思是说,我跟踪进去,没有看到设置STM32定时器,应该要指定用那个定时器、然后设定定时器方式吧,跟踪进去没有看到啊。请原谅,我对RTT这一部分很不熟悉,能再讲详细点吗(主要是挂接硬件定时器)。
其实两者说的都是“软”定时器,即OS定时器。
软和硬的意思这里指的是,定时器超时的回调函数是运行在哪个上下文。软,运行在线程上下文。硬,运行在中断服务例程上下文。因为用的都是OS定时器,所以挂接的是SysTick,这个一般在board.c中配置。