Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
Kernel
rt-thread stm32f0,stm32f3 如何添加中断处理函数????
发布于 2018-09-08 12:03:38 浏览:4235
订阅该版
* 本帖最后由 tcsun 于 2018-9-8 14:33 编辑 * 今天在写一个RTC alarm 应用,当闹钟到时触发中断线17(EXIT_Line17),然后在中断处理函数中进行闹钟中断处理,在裸机上跑着没有问题,但移到rt-thread 上就不行.后来查找资 料(rt-Thread 文档中心/开发指南/异常与中断)说:可以用rt_hw_interrupt_install() 装载中断服务函数将所用的中断装载进去,但后面又说,"为了尽量的使用户和系统底层异常、中断隔离开来,RT-Thread把中断和异常封装起来,以更友好的接口的形式提供给用户。(注:这部分的API由BSP提供,在某些处理器支持分支中并不一定存在,例如ARM Cortex-M0/M3分支中,请查询相关移植分支获得详细的实现情况)" 如果 我需要用这个alarm 中断()要怎么做呢! 我要裸机里有代码如下: /***************************************************************** * @brief :RTC_Set_AlarmA() * @param : week:星期几(1~7) hour,min,sec:小时,分钟,秒钟 * @retval : ****************************************************************/ void RTC_Set_AlarmA(uint8_t week,uint8_t hour,uint8_t min,uint8_t sec) { EXTI_InitTypeDef EXTI_InitStructure; RTC_AlarmTypeDef RTC_AlarmTypeInitStructure; RTC_TimeTypeDef RTC_TimeTypeInitStructure; RTC_AlarmCmd(RTC_Alarm_A,DISABLE);//关闭闹钟A RTC_TimeTypeInitStructure.RTC_Hours=hour;//小时 RTC_TimeTypeInitStructure.RTC_Minutes=min;//分钟 RTC_TimeTypeInitStructure.RTC_Seconds=sec;//秒 RTC_TimeTypeInitStructure.RTC_H12=RTC_H12_AM; RTC_AlarmTypeInitStructure.RTC_AlarmMask= RTC_AlarmMask_DateWeekDay; //每天,忽略秒 //RTC_AlarmMask_None;//精确匹配星期,时分秒 RTC_AlarmTypeInitStructure.RTC_AlarmDateWeekDaySel=RTC_AlarmDateWeekDaySel_WeekDay;//按星期闹 RTC_AlarmTypeInitStructure.RTC_AlarmDateWeekDay=week;//星期 RTC_AlarmTypeInitStructure.RTC_AlarmTime=RTC_TimeTypeInitStructure; RTC_SetAlarm(RTC_Format_BIN,RTC_Alarm_A,&RTC_AlarmTypeInitStructure); RTC_ClearITPendingBit(RTC_IT_ALRA);//清除RTC闹钟A的标志 EXTI_ClearITPendingBit(EXTI_Line17);//清除LINE17上的中断标志位 RTC_ITConfig(RTC_IT_ALRA,ENABLE);//开启闹钟A中断 RTC_AlarmCmd(RTC_Alarm_A,ENABLE);//开启闹钟A // EXTI configuration EXTI_InitStructure.EXTI_Line = EXTI_Line17;//LINE17 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发 EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE17 EXTI_Init(&EXTI_InitStructure);//配置 // Enable the RTC Alarm Interrupt NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn; NVIC_InitStructure.NVIC_IRQChannelPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道 NVIC_Init(&NVIC_InitStructure);//配置 printf("alarm time=%d:%d:%d",RTC_TimeTypeInitStructure.RTC_Hours,RTC_TimeTypeInitStructure.RTC_Minutes,RTC_TimeTypeInitStructure.RTC_Seconds); printf("rtc_alarm setup done!
"); } //RTC闹钟中断服务函数 void RTC_IRQHandler(void) { if(RTC_GetFlagStatus(RTC_FLAG_ALRAF)==SET)//ALARM A中断? { RTC_ClearFlag(RTC_FLAG_ALRAF);//清除中断标志 rt_kprintf("======== ALARM A.........=======!
"); } EXTI_ClearITPendingBit(EXTI_Line17); //清除中断线17的中断标志 } 请大家指点一下!!!!!!!!!!!!!!!!!
查看更多
6
个回答
默认排序
按发布时间排序
tcsun
2018-09-08
这家伙很懒,什么也没写!
可不可以不用添加到系统里,只接用void RTC_IRQHandler(void)?,现在不用rt_hw_interrupt_install() 添加系统中有没有问题?
lijiuping
2018-11-07
这家伙很懒,什么也没写!
目前我也遇到这样的问题,请问你解决了吗?通用的drv_rtc.c里面没有看到关于闹钟的接口
KIAN
2018-12-16
这家伙很懒,什么也没写!
帮顶,同求
yqiu
2018-12-17
这家伙很懒,什么也没写!
直接添加函数void RTC_IRQHandler(void)就可以使用中断了,Cortex M的芯片不需要使用rt_hw_interrupt_install()接口的。
lijiuping
2018-12-17
这家伙很懒,什么也没写!
>直接添加函数void RTC_IRQHandler(void)就可以使用中断了,Cortex M的芯片不需要使用rt_hw_interrupt_insta ... --- 那样是可以的,但是这样操作总感觉没有按照rt-thread的规律进行,实际上这个中断实际上是独立于rt-thread之外的中断,不知道有没有遵循rt-thread规律的方式添加
yqiu
2018-12-17
这家伙很懒,什么也没写!
>那样是可以的,但是这样操作总感觉没有按照rt-thread的规律进行,实际上这个中断实际上是独立于rt-thread ... --- RT-Thread 中就是这么处理的,可以多参考下这下面的驱动实现方式 [https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/libraries/HAL_Drivers](https://github.com/RT-Thread/rt-thread/tree/master/bsp/stm32/libraries/HAL_Drivers)
撰写答案
登录
注册新账号
关注者
0
被浏览
4.2k
关于作者
tcsun
这家伙很懒,什么也没写!
提问
19
回答
62
被采纳
0
关注TA
发私信
相关问题
1
请教cpu使用率分析
2
选择FreeRTOS, 还是RT-Thread。
3
thread heap stack overflow ?
4
rtt消息队列delay问题
5
释放被删除线程的内存地方在哪里啊
6
请教:各线程结束后,释放其中的内存的连续性问题
7
STM32F103中断关于信号量、邮箱问题
8
RTT中的线程栈大小如何控制
9
关于线程由执行态变为挂起态的代码实现,,,
10
rt_malloc(rt_size_t size)内存分配函数最小分配尺寸问题
推荐文章
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
在用clangd开发RTT吗,快来试试如何简单获得清晰干净的工作区
2
GD32F450 片内 flash驱动适配
3
STM32H7R7运行CherryUSB
4
RT-Smart首次线下培训,锁定2024 RT-Thread开发者大会!
5
使用RC522软件包驱动FM1722
热门标签
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
本月问答贡献
a1012112796
10
个答案
1
次被采纳
踩姑娘的小蘑菇
4
个答案
1
次被采纳
红枫
4
个答案
1
次被采纳
张世争
4
个答案
1
次被采纳
Ryan_CW
4
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
6
次点赞
YZRD
2
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部