[STM32F4] stm32f411 如何通过USB指令唤醒?

[复制链接]
2343|12
 楼主| log002 发表于 2017-12-15 11:13 | 显示全部楼层 |阅读模式
手册中讲到OTG_FS core interrupt register(OTG_FS_GINTSTS)这一章节。其中Bit31 WKUPINT.

有没有人用过这个功能?
dongnanxibei 发表于 2017-12-15 11:48 | 显示全部楼层
#define OTG_FS_GINTSTS_WKUPINT (1 << 31)
 楼主| log002 发表于 2017-12-15 13:57 | 显示全部楼层
dongnanxibei 发表于 2017-12-15 11:48
#define OTG_FS_GINTSTS_WKUPINT (1

我是想知道如何进入睡眠模式?
xixi2017 发表于 2017-12-15 14:47 | 显示全部楼层
void PWR_EnterSleepMode(uint8_t PWR_SLEEPEntry); //睡眠模式
void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry);  //停机模式
void PWR_EnterSTANDBYMode(void);    //待机模式
xixi2017 发表于 2017-12-15 14:47 | 显示全部楼层
第一个PWR_Regulator是选择电源是否进入低功耗

#define PWR_Regulator_ON               //电源不进低功耗 唤醒基本没延迟
#define PWR_Regulator_LowPower         //电源进去低功耗 不过唤醒启动有一点延迟   
xixi2017 发表于 2017-12-15 14:48 | 显示全部楼层
第二个参数PWR_STOPEntry

#define PWR_STOPEntry_WFI              //中断唤醒
#define PWR_STOPEntry_WFE              //事件唤醒
xixi2017 发表于 2017-12-15 14:48 | 显示全部楼层
停机模式唤醒后自动选择系统内部时钟,看自己的应用是否需要重新配置;如果你的系统时钟是HSI或者HSE是要重新配置,一般都需要重新配置,直接调用系统时钟配置函数。
另外停机模式唤醒后,flash程序是从中断或事件开始执行的。

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);  //使能时钟
PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);

第一个参数要配置电源低功耗模式,第二个随你是中断唤醒还是事件唤醒,或者两者都要;

第二步你要把所有引脚IO口释放,全部配置成模拟输入状态,IO口几乎0消耗
 楼主| log002 发表于 2017-12-15 16:41 | 显示全部楼层
xixi2017 发表于 2017-12-15 14:48
停机模式唤醒后自动选择系统内部时钟,看自己的应用是否需要重新配置;如果你的系统时钟是HSI或者HSE是要重 ...

device端设置好之后,host端如何来挂起及唤醒?请指点下。
香水城 发表于 2017-12-15 17:02 | 显示全部楼层
对于HOST,通过操作相关寄存器让其进入suspend状态;
对于DEVICE,通过检查USB总线空闲无活动3ms后进入suspend状态;

对于suspend状态的HOST,可以操作寄存器令其自行退出suspend状态,并发出重启信号到总线上;如果DEVICE处于SUSPEND状态,它就可以被来自HOST的重启【RESUME】信号唤醒。

对于suspend状态的DEVICE,同样可以通过操作寄存器令其自行退出suspend状态,并发出远程唤醒信号到总线上;如果此时HOST处于suspend状态,它可以被来自DEVICE的远程唤醒信号【remote wakeup】唤醒。
643757107 发表于 2017-12-17 22:37 来自手机 | 显示全部楼层
是不是有什么中断
 楼主| log002 发表于 2017-12-18 10:44 | 显示全部楼层
香水城 发表于 2017-12-15 17:02
对于HOST,通过操作相关寄存器让其进入suspend状态;
对于DEVICE,通过检查USB总线空闲无活动3ms后进入suspe ...

感谢版主的回复
谢谢

我去看一看host如何进入suspend
 楼主| log002 发表于 2017-12-18 10:45 | 显示全部楼层
643757107 发表于 2017-12-17 22:37
是不是有什么中断

按手册上说,唤醒后会有一个中断,
#define OTG_FS_GINTSTS_WKUPINT (1 << 31)
香水城 发表于 2017-12-18 16:21 | 显示全部楼层
log002 发表于 2017-12-18 10:45
按手册上说,唤醒后会有一个中断,
#define OTG_FS_GINTSTS_WKUPINT (1

是的,有相应的唤醒中断资源存在。你可以配置开启使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部