Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
alarm
注释LOG_D导致alarm 闹钟功能失效
发布于 2023-03-26 17:41:25 浏览:528
订阅该版
我最近调试alarm 闹钟好了,就想把LOG输出关掉(DBG_LVL由DBG_LOG改为DBG_INFO),结果奇怪的事情发生了,alarm 闹钟功能失效了。为了验证,我采用了以下三种方式验证: 1、DBG_LVL保持DBG_LOG,注释`LOG_D("%s", ctime(&now));`,结果alarm 闹钟功能失效; 2、DBG_LVL保持DBG_LOG,将`LOG_D("%s", ctime(&now));` 改为 `ctime(&now);` 结果alarm 闹钟功能失效; 3、在2的基础上,加了延时500ms; 结果alarm 闹钟功能失效; 代码如下: ```c /* * Copyright (c) 2006-2021, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2023-02-19 59427 the first version */ #include
#include
#include "alex.h" #define DBG_TAG "alarm" #define DBG_LVL DBG_LOG #include
#define THREAD_PRIORITY 18 #define THREAD_STACK_SIZE 1024 #define THREAD_TIMESLICE 5 #define RTC_NAME "rtc" static rt_thread_t tid1 = RT_NULL; void user_alarm_callback(rt_alarm_t alarm, time_t timestamp) { /* 释放信号量 */ rt_sem_release(rtc_sem); } /* 线程的入口函数 */ static void alarm_entry(void *parameter) { struct rt_alarm_setup setup; struct rt_alarm * alarm = RT_NULL; time_t now; struct tm p_tm; rt_err_t ret = RT_EOK; /* 设置日期 */ ret = set_date(2023, 1, 1); if (ret != RT_EOK) { LOG_E("set RTC date failed"); return; } /* 设置时间 */ ret = set_time(0, 0, 0); if (ret != RT_EOK) { LOG_E("set RTC time failed"); return; } /* 延时3秒 */ rt_thread_mdelay(1000); /* 获取时间 */ now = time(RT_NULL); LOG_D("%s", ctime(&now)); /* 获取当前时间戳,并把下一秒时间设置为闹钟时间 */ now = time(RT_NULL) + 2; gmtime_r(&now,&p_tm); setup.flag = RT_ALARM_SECOND; setup.wktime.tm_year = p_tm.tm_year; setup.wktime.tm_mon = p_tm.tm_mon; setup.wktime.tm_mday = p_tm.tm_mday; setup.wktime.tm_wday = p_tm.tm_wday; setup.wktime.tm_hour = p_tm.tm_hour; setup.wktime.tm_min = p_tm.tm_min; setup.wktime.tm_sec = p_tm.tm_sec; alarm = rt_alarm_create(user_alarm_callback, &setup); if(RT_NULL != alarm) { rt_alarm_start(alarm); } } /* 线程示例 */ int alarm_sample_start(void) { /* 创建线程,入口是entry*/ tid1 = rt_thread_create("alarm", alarm_entry, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE); /* 如果获得线程控制块,启动这个线程 */ if (tid1 != RT_NULL) rt_thread_startup(tid1); return RT_EOK; } ```
查看更多
1
个回答
默认排序
按发布时间排序
张世争
2023-04-11
学以致用
线程创建完闹钟后,就退出了?
撰写答案
登录
注册新账号
关注者
0
被浏览
528
关于作者
Alex_Zhou
这家伙很懒,什么也没写!
提问
7
回答
1
被采纳
0
关注TA
发私信
相关问题
1
带有alarm 的drv_rtc.c 如何下载
2
跪求RTC drv_rtc.c 最新带alarm文件
3
关于rtc_alarm的使用
4
请问有人知道rtc的alarm要如何调用吗
5
请问在stm32f103上如何使用rtt studio的alarm功能
6
rt thread studio 有关于stm32待机周期性唤醒的示例吗?
7
RTC ALARM中断,为什么没有执行闹钟中断回调函数?
8
如何实现RTC中的set_alarm 和 get_alarm 接口
9
开启Alarm设备 链接时出错
10
根据文档进行了alarm创建和启动,发现并没有跳到闹钟回调函数
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
2
使用RC522软件包驱动FM1722
3
常量数据类型和表达式陷阱分享
4
进行i2c驱动移植的经验总结
5
在VSCode中使用clang-format
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
中断
编译报错
Debug
SFUD
rt_mq_消息队列_msg_queue
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
xiaorui
1
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部