你好,我使用的是rt-thread studio 2.2.6,在
STM32F407VG芯片上使用RT-THREAD的标准版本4.1.1。
在使用提供的alarm模块时,设置了一个每分钟触发的alarm。当我在msh命令行中,使用date命令设置时间之后,这个每分钟触发的alarm有可能出现没有更新的情况,通过实验是可以复现这个bug的。复现的方法是使用date命令设置时间是,秒的设置不是0秒,比如设置成12秒,就会出现每分钟触发的alarm不更新。
可以看如下截图

而使用date设置时间时,只有秒为0的时候,每分钟触发的alarm才能正确的更新

我创建的alarm的代码如下:
- rt_alarm_t alarm_10min,alarm_timing,alarm_zerotime;
- void create_10_min_alarm()
- {
- struct rt_alarm_setup alarm_setup;
- alarm_setup.flag = RT_ALARM_MINUTE;
- alarm_setup.wktime.tm_sec = 0;
- alarm_10min = rt_alarm_create(alarm_10min_handle,&alarm_setup);
- }
- void create_alarm_app()
- {
- rt_err_t err1,err2,err3;
- create_10_min_alarm();
- create_timing_alarm();
- create_zerotime_alarm();
- err1 = rt_alarm_start(alarm_10min);
- err2 = rt_alarm_start(alarm_timing);
- err3 = rt_alarm_start(alarm_zerotime);
- if((err1 != RT_EOK) || (err2 != RT_EOK)|| (err3 != RT_EOK)){
- LOG_E("ALARM start failed,%d-%d-%d",err1,err2,err3);
- }else{
- LOG_D("start Alarm");
- }
- }
希望程序员们能够提供如何修改的方法。