你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 11192|回复: 20

[STM32F3] 【STM32F303开发】+按键中断唤醒STOP模式

[复制链接]

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2015-6-4 20:21:08 | 显示全部楼层 |阅读模式
本帖最后由 creep 于 2015-6-4 20:22 编辑

昨天测试了RTC的AlarmA闹钟中断唤醒STOP休眠:【STM32F303开发】+ RTC闹钟中断唤醒STOP模式休眠     ,但实际中使用按键中断来实现进入STOP休眠关机和使用按键中断退出STOP模式比较多,这个测试程序实现,按下开发板的蓝色按键进入STOP模式休眠再次按下唤醒STOP模式休眠的功能,程序正常运行时串口每秒打印一次运行记录。

STM32F303RE开发板上的蓝色的USER使用的是PC13,我们只需要配置相应的中断线,设置中断优先级即可实现中断相应。
因为STOP模式唤醒后使用内部时钟所以在中断函数中调用了恢复系统时钟的函数,STOP模式的工作模式和上个帖子里说的一样。

中断函数比较简单:
  1. void EXTI15_10_IRQHandler(void)
  2. {
  3.     if(EXTI_GetITStatus(EXTI_Line13) != RESET)
  4.     {
  5.         SYSCLKConfig_STOP();
  6.         g_keyWorkMode = IO_MODE;
  7.         KEY_CheckMode(IO_MODE);
  8.         printf("\n\r-----按键中断唤醒MCU--------\n\r\n\r");
  9.         EXTI_ClearITPendingBit(EXTI_Line13);
  10.     }
  11. }
复制代码
main函数扫描按键及打印程序运行信息:
  1. int main(void)
  2. {
  3.     u8 key, t = 0;
  4.     u8 led_sta = 0;
  5.     LED_Init();
  6.     delay_init();
  7.     USART2_Init();
  8.     KEY_CheckMode(IO_MODE);
  9.     delay_ms(1500);
  10.     delay_ms(1500);

  11.     while(1)
  12.     {
  13.         key = Key_Scan();

  14.         if(key == KEY_PRESS)
  15.         {
  16.             LED(ON);
  17.             g_keyWorkMode = EXTI_MODE;
  18.             KEY_CheckMode(EXTI_MODE);
  19.             printf("\n\r-----系统进入STOP休眠模式-----\n\r\n\r");
  20.             PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
  21.         }

  22.         delay_ms(10);
  23.         t++;

  24.         if(t == 100)
  25.         {
  26.             t = 0;
  27.             printf("\n\r-----系统正在运行-----\n\r\n\r");
  28.             led_sta = !led_sta;
  29.             LED(led_sta);
  30.         }


  31.     }
  32. }
复制代码
程序正常运行时每秒打印一次运行信息,LED每秒亮灭反转一次,进入STOP模式后LED长亮,串口打印进入STOP信息,再次按下按键唤醒后串口输出唤醒信息,然后程序继续正常运行并不断的输出信息。
运行记录如下:
key_exti.jpg
测试代码:

F303RE_EXTI_STOP.rar

下载

557.02 KB, 下载次数: 700, 下载积分: ST金币 -1

按键中断唤醒STOP休眠

回复

使用道具 举报

47

主题

3404

回帖

30

蝴蝶豆

版主

最后登录
2020-12-7
发表于 2015-6-4 21:42:40 | 显示全部楼层
多谢分享,支持
回复 支持 反对

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 2015-6-4 21:50:53 | 显示全部楼层
Paderboy 发表于 2015-6-4 21:42
多谢分享,支持

谢谢
回复 支持 反对

使用道具 举报

107

主题

812

回帖

5

蝴蝶豆

论坛元老

最后登录
2019-8-28
发表于 2015-6-5 08:37:44 | 显示全部楼层
不错,欢迎原创
回复 支持 反对

使用道具 举报

9

主题

392

回帖

2

蝴蝶豆

金牌会员

最后登录
2016-11-24
发表于 2015-6-5 09:01:34 | 显示全部楼层
支持支持~!
回复 支持 反对

使用道具 举报

100

主题

3617

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2015-6-5 10:11:36 | 显示全部楼层
儿科。。。。。
回复 支持 反对

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 2015-6-5 10:46:57 | 显示全部楼层
stary666 发表于 2015-6-5 10:11
儿科。。。。。

我新手一个,让您见笑了,以后多向您学习。
回复 支持 反对

使用道具 举报

100

主题

3617

回帖

1

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2015-6-5 11:14:07 | 显示全部楼层
共同进步
回复 支持 反对

使用道具 举报

26

主题

48

回帖

0

蝴蝶豆

初级会员

最后登录
2015-6-19
发表于 2015-6-5 11:22:10 | 显示全部楼层
金币已给,楼主以后要继续为大家送福利!
回复 支持 反对

使用道具 举报

60

主题

2051

回帖

31

蝴蝶豆

版主

最后登录
2020-12-9
 楼主| 发表于 2015-6-5 11:25:26 | 显示全部楼层
苏浅叶 发表于 2015-6-5 11:22
金币已给,楼主以后要继续为大家送福利!

感谢,看到金币就更加有动力了,
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版