OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3134|回复: 11

MFRC522唤醒STM32单片机

[复制链接]

5

主题

28

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-11-9
在线时间
12 小时
发表于 2018-11-27 14:54:31 | 显示全部楼层 |阅读模式
10金钱
各位大神,MFRC522芯片如何唤醒休眠状态的STM32单片机,有做过的可以给一下指导吗

最佳答案

查看完整内容[请看2#楼]

stm32低功耗三模式进入及退出
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-11-27 14:54:32 | 显示全部楼层
stm32低功耗三模式进入及退出
stm32低功耗三模式.jpg
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-29 02:35:31 | 显示全部楼层
RC522,能一直工作么?能自动输出高低电平么?能就可以
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-11-29 08:26:26 | 显示全部楼层
唤醒休眠状态的STM32单片机  这个会吗?需要啥条件知道吗?如果知道那就让你的MFRC522满足条件呀
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

5

主题

28

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-11-9
在线时间
12 小时
 楼主| 发表于 2018-11-29 09:06:11 | 显示全部楼层
正点原子 发表于 2018-11-29 02:35
RC522,能一直工作么?能自动输出高低电平么?能就可以

不能吧,RC522一直工作功耗很高的,需要休眠,手册中说IRQ是中断脚,但是我连接上不起作用
回复

使用道具 举报

5

主题

28

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-11-9
在线时间
12 小时
 楼主| 发表于 2018-11-29 09:13:47 | 显示全部楼层
szczyb1314 发表于 2018-11-29 08:26
唤醒休眠状态的STM32单片机  这个会吗?需要啥条件知道吗?如果知道那就让你的MFRC522满足条件呀

知道呀,STM32进入停止模式,MFRC522检测到卡的时候唤醒单片机
回复

使用道具 举报

5

主题

28

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-11-9
在线时间
12 小时
 楼主| 发表于 2018-11-29 09:14:54 | 显示全部楼层
对了,各位大神,进入停止模式的单片机可以通过定时唤醒吗?,不是进入待机模式
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-11-29 09:36:37 | 显示全部楼层
守望冬天2018 发表于 2018-11-29 09:13
知道呀,STM32进入停止模式,MFRC522检测到卡的时候唤醒单片机

stop模式需要任意的EXTI中断或事件退出,只要你的RC522有个引脚能输出一个边沿让STM32能触发外部中断或事件就能唤醒STM32

可是你真的需要让STM32低功耗吗?你明明说的是你的RC522功耗很大
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

5

主题

28

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-11-9
在线时间
12 小时
 楼主| 发表于 2018-11-30 09:37:57 | 显示全部楼层
szczyb1314 发表于 2018-11-29 09:36
stop模式需要任意的EXTI中断或事件退出,只要你的RC522有个引脚能输出一个边沿让STM32能触发外部中断或事 ...

RC522功耗大好像是因为线圈在时刻工作着,我看网上说有个RTC时钟也在一直工作,所以我想试试定时打开关闭线圈
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-11-30 10:47:20 | 显示全部楼层
没用过RC522,对它不了解

不过如果你的RC522的功耗比STM32大很多,STM32完全可以不用考虑进入低功耗反正功耗大头是RC522,那你可以考虑定时关掉RC522的电源试试。一个IO控制mos管打开关断RC522的电源。定时时间你自己根据你的应用决定
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

5

主题

28

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-11-9
在线时间
12 小时
 楼主| 发表于 2018-11-30 15:36:03 | 显示全部楼层
szczyb1314 发表于 2018-11-30 10:47
没用过RC522,对它不了解

不过如果你的RC522的功耗比STM32大很多,STM32完全可以不用考虑进入低功耗反正 ...

嗯,我现在想用RTC定时中断RTC_IT_WUT唤醒单片机,不知道出了什么问题,定时可以执行,但低功耗唤不醒,你能帮我看一下吗
回复

使用道具 举报

5

主题

28

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-11-9
在线时间
12 小时
 楼主| 发表于 2018-11-30 15:37:20 | 显示全部楼层
static void RTC_NVIC_Config(void)
{   
    NVIC_InitTypeDef NVIC_InitStructure;
    EXTI_InitTypeDef EXTI_InitStructure;
    NVIC_InitStructure.NVIC_IRQChannel = RTC_WKUP_IRQn;      //RTC全局中断
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;   //先占优先级1位,从优先级3位
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  //先占优先级0位,从优先级4位
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;     //使能该通道中断
    NVIC_Init(&NVIC_InitStructure);     //根据NVIC_InitStruct中指定的参数初始化外设NVIC寄存器
   
    /* EXTI configuration *******************************************************/
    EXTI_ClearITPendingBit(EXTI_Line22);
    EXTI_InitStructure.EXTI_Line = EXTI_Line22;
    EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
    EXTI_InitStructure.EXTI_LineCmd = ENABLE;
    EXTI_Init(&EXTI_InitStructure);
}

void RTC_Init_Config(void)
{
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
   
    /* Allow access to BKP Domain */
    PWR_BackupAccessCmd(ENABLE);
    //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    RTC_NVIC_Config();
   
    if(RTC_ReadBackupRegister(RTC_BKP_DR0) != 0xA4A5)
    {
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //①使能 PWR 和 BKP 外设时钟
        PWR_BackupAccessCmd(ENABLE); //②使能后备寄存器访问
        //BKP_DeInit(); //③复位备份区域
        RCC_LSEConfig(RCC_LSE_ON); //设置外部低速晶振(LSE)
        while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
        {
        }
        RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); //设置 RTC 时钟
        RCC_RTCCLKCmd(ENABLE); //使能 RTC 时钟
        RTC_WaitForSynchro(); //等待 RTC 寄存器同步
        /* Configure the RTC Wakeup Clock source and Counter (Wakeup event each 1 second) */
        RTC_WakeUpCmd(DISABLE);
        RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
        RTC_SetWakeUpCounter(0x7FF);
        
        /* Enable the Wakeup Interrupt */
        RTC_ITConfig(RTC_IT_WUT, ENABLE);
        
        /* Enable Wakeup Counter */
        RTC_WakeUpCmd(ENABLE);
        RTC_WriteBackupRegister(RTC_BKP_DR0, 0xA4A6);
    }
    else
    {
        RTC_WaitForSynchro(); //等待最近一次对 RTC 寄存器的写操作完成
        RTC_ClearITPendingBit(RTC_IT_WUT);
        EXTI_ClearITPendingBit(EXTI_Line22);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE);
    }
}
//RTC 时钟中断
//每秒触发一次
void RTC_WKUP_IRQHandler(void)
{
    if(RTC_GetITStatus(RTC_IT_WUT) != RESET)
    {
        RTC_ClearITPendingBit(RTC_IT_WUT);
        EXTI_ClearITPendingBit(EXTI_Line22);
    }
}
大神,我进入的是停止模式,现在退不出了


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-1 09:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表