WFI

1. WFI与WFE的区别为,WFI等待的是中断,而WFE等待是事件,所以WFE不能进入中断服务函数,而WFI可以。

2. 实验现象和WFE一样。

    CLK_Config();//切换LSI为主时钟
    
    //不使用的IO全部设置为输出低电平
    GPIO_Init(GPIOA, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOB, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOC, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
    GPIO_Init(GPIOD, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow);
  
    GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_Low_Slow);//GPIO初始化
    GPIO_Init(KEY_GPIO_PORT, KEY_GPIO_PINS, GPIO_Mode_In_PU_IT);//初始化按键,GPB6上拉输入
    EXTI_SetPinSensitivity (EXTI_Pin_6,EXTI_Trigger_Falling);//外部中断1,下降沿触发
    enableInterrupts();//使能中断
    
    while(1)
    {
        GPIO_ToggleBits(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);//翻转LED端口电平
        Delay(0x00FF);
        
        wfi();
        
        GPIO_ToggleBits(LED_GPIO_PORT, (GPIO_Pin_TypeDef)LED_GPIO_PINS);//翻转LED端口电平
        Delay(0x00FF);
        
    }


INTERRUPT_HANDLER(EXTI6_IRQHandler,14)
{
    /* In order to detect unexpected events during development,
       it is recommended to set a breakpoint on the following instruction.
    */
 EXTI_ClearITPendingBit (EXTI_IT_Pin6);//清除中断标志 WFE模式下 该句放在while循环里面
}

### WFI 的技术背景 在编程和技术领域,WFI 并不是一个广泛使用的标准术语。然而,在某些特定场景下,“WFI”可能具有不同的含义。以下是几种常见的解释: #### 1. **ARM 架构中的 WFI 指令** 在 ARM 处理器架构中,WFI 是 “Wait For Interrupt”的缩写[^1]。这是一条指令,用于让处理器进入低功耗模式,直到有中断事件发生为止。当执行这条指令时,CPU 将停止大部分活动以节省电力,这对于嵌入式设备尤其重要。 ```c // 使用汇编调用 WFI 指令的示例 (C/C++ 中) __asm volatile ("wfi"); ``` 此功能通常应用于电池供电的移动设备或物联网设备上,通过减少不必要的 CPU 运行时间来延长续航能力。 #### 2. **无线网络环境下的 WFI** 另一种可能性是在无线通信领域。“WFI”有时被误解为 Wireless Fidelity Internet 或其他类似的表述,但实际上 Wi-Fi 已经成为该领域的正式名称。如果提到的是某种形式的无线连接,则更可能是指代 Wi-Fi 技术本身而非单独定义的新词组[^2]。 #### 3. **项目管理或其他行业内的自定义缩写** 除了上述情况外,不同公司或者团队内部可能会创建自己的专有名词表单,其中包含像"WFI"这样的短语作为本地化表达方式之一;比如等待进一步指示( WaitFor Further Instructions )等情况也存在。 综上所述,在具体讨论之前确认上下文非常重要——因为即使同一个字母组合也可能代表完全不一样的概念! ```python def check_wfi_context(context): """判断给定情境是否属于已知的 WFI 定义""" arm_related = ["arm", "processor", "instruction"] wifi_related = ["wireless", "network", "internet"] if any(word in context.lower() for word in arm_related): return "ARM Wait-for-interrupt instruction" elif any(word in context.lower() for word in wifi_related): return "Possibly related to WiFi, but not standard terminology." else: return "Custom definition; requires clarification from the source." print(check_wfi_context("embedded system with low power mode")) # 输出: 'ARM Wait-for-interrupt instruction' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值