任务挂起简单点理解就是现在不需要执行这个任务,然它先暂停,就是挂起。恢复就是从刚才挂起的状态下继续运行。
另外,结合中断使用需要注意避免入坑,文章后半段有介绍。

API函数

任务挂起vTaskSuspend()

函数原型(tasks.c中):

void vTaskSuspend( TaskHandle_t xTaskToSuspend )

参数:

  • xTaskToSuspend:需要挂起的任务句柄

任务恢复vTaskResume()

函数原型(tasks.c中):

void vTaskResume( TaskHandle_t xTaskToResume )

参数:

  • xTaskToSuspend:需要恢复的任务句柄

中断函数中进行任务恢复xTaskResumeFromISR()

BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume )

参数:

  • xTaskToSuspend:需要挂起的任务句柄

总结

这几个函数用起来还是很简单的,只需要传入任务的句柄即可。

注意,任务挂起是没有FromISR版本的,所以在中断中貌似就不可以使用任务挂起了。

程序验证

在上个例程的基础上,增加一个按键检测任务和外部中断函数,用来测试任务挂起与恢复。

按键任务

//key任务函数
void key_task(void *pvParameters)
{u8 key;static uint8_t flag=0;while(1){key=KEY_Scan(0);switch(key){case KEY1_PRES:if(!flag){vTaskSuspend(Task1Task_Handler);//挂起任务1printf("1 suspend\r\n");}else{vTaskResume(Task1Task_Handler);	//恢复任务1printf("1 resume\r\n");}flag=~flag;break;case K_UP_PRES:vTaskSuspend(Task2Task_Handler);//挂起任务2printf("2 suspend\r\n");break;}vTaskDelay(10);			//延时10ms }
}

中断配置与中断函数

//==============中断相关配置
void EXTIX_Init(void)
{NVIC_InitTypeDef   NVIC_InitStructure;EXTI_InitTypeDef   EXTI_InitStructure;//KEY_Init(); //按键对应的IO口初始化RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource4);//PE4 连接到中断线4/* 配置EXTI_Line4 */EXTI_InitStructure.EXTI_Line =  EXTI_Line4;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;		//中断事件EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发EXTI_InitStructure.EXTI_LineCmd = ENABLE;				//中断线使能EXTI_Init(&EXTI_InitStructure);							//配置NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;		//外部中断4NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x06;//抢占优先级6NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;	//子优先级0NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//使能外部中断通道NVIC_Init(&NVIC_InitStructure);							//配置	   
}//外部中断4服务程序
void EXTI4_IRQHandler(void)
{BaseType_t YieldRequired;//vTaskDelay(10);	//消抖-------//中断函数中不可以使用vTaskDelay()!!!if(KEY0==0)	 {			//vTaskResume(Task2Task_Handler);//这里必须使用FromISR版本的!!!	YieldRequired=xTaskResumeFromISR(Task2Task_Handler);//恢复任务2printf("2 resume\r\n");if(YieldRequired==pdTRUE){/*如果函数xTaskResumeFromISR()返回值为pdTRUE,那么说明要恢复的这个任务的任务优先级等于或者高于正在运行的任务(被中断打断的任务),所以在退出中断的时候一定要进行上下文切换!*/portYIELD_FROM_ISR(YieldRequired);}}		 EXTI_ClearITPendingBit(EXTI_Line4);//清除LINE4上的中断标志位  
}

整个主函数

//*******************************************
//STM32F407+FreeRTOS 任务挂起与恢复(结合中断)
//File: main.c
//Author: xxpcb(wxgzh:码农爱学习)
//Version: V1.0
//Date: 2020/06/04
//*******************************************#include "stm32f4xx.h"
#include "led.h"
#include "key.h"
#include "usart.h"#include "FreeRTOS.h"
#include "task.h"//任务参数--------------------------
//优先级 堆栈大小 任务句柄 任务函数
#define START_TASK_PRIO		1
#define START_STK_SIZE 		128  
TaskHandle_t StartTask_Handler;
void start_task(void *pvParameters);#define TASK1_TASK_PRIO		3
#define TASK1_STK_SIZE 		128  
TaskHandle_t Task1Task_Handler;
void task1_task(void *pvParameters);#define TASK2_TASK_PRIO		4	
#define TASK2_STK_SIZE 		128  
TaskHandle_t Task2Task_Handler;
void task2_task(void *pvParameters);#define KEY_TASK_PRIO		2	
#define KEY_STK_SIZE 		128  
TaskHandle_t KeyTask_Handler;
void key_task(void *pvParameters);void EXTIX_Init(void);int main(void)
{ 	//设置系统中断优先级分组4(FreeRTOS中的默认方式!)NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//初始化LED端口LED_Init();	//初始化按键KEY_Init();	//初始化外部中断EXTIX_Init();//串口初始化uart_init(115200);//创建开始任务xTaskCreate((TaskFunction_t )start_task,            //任务函数(const char*    )"start_task",          //任务名称(uint16_t       )START_STK_SIZE,        //任务堆栈大小(void*          )NULL,                  //传递给任务函数的参数(UBaseType_t    )START_TASK_PRIO,       //任务优先级(TaskHandle_t*  )&StartTask_Handler);   //任务句柄  //开启任务调度				vTaskStartScheduler();          
}//开始任务任务函数
void start_task(void *pvParameters)
{taskENTER_CRITICAL();           //进入临界区//创建TASK1任务xTaskCreate((TaskFunction_t )task1_task,             (const char*    )"task1_task",           (uint16_t       )TASK1_STK_SIZE,        (void*          )NULL,                  (UBaseType_t    )TASK1_TASK_PRIO,        (TaskHandle_t*  )&Task1Task_Handler);   //创建TASK2任务xTaskCreate((TaskFunction_t )task2_task,     (const char*    )"task2_task",   (uint16_t       )TASK2_STK_SIZE,(void*          )NULL,(UBaseType_t    )TASK2_TASK_PRIO,(TaskHandle_t*  )&Task2Task_Handler); //创建KEY任务xTaskCreate((TaskFunction_t )key_task,     (const char*    )"key_task",   (uint16_t       )KEY_STK_SIZE,(void*          )NULL,(UBaseType_t    )KEY_TASK_PRIO,(TaskHandle_t*  )&KeyTask_Handler); vTaskDelete(StartTask_Handler); //删除开始任务taskEXIT_CRITICAL();            //退出临界区
}//task1任务函数
void task1_task(void *pvParameters)
{while(1){LEDa_Toggle;vTaskDelay(500); //延时500ms}
}//task2任务函数
void task2_task(void *pvParameters)
{while(1){LEDb_ON;vTaskDelay(200); //延时200msLEDb_OFF;vTaskDelay(800); //延时800ms}
}//key任务函数
void key_task(void *pvParameters)
{u8 key;static uint8_t flag=0;while(1){key=KEY_Scan(0);switch(key){case KEY1_PRES:if(!flag){vTaskSuspend(Task1Task_Handler);//挂起任务1printf("1 suspend\r\n");}else{vTaskResume(Task1Task_Handler);	//恢复任务1printf("1 resume\r\n");}flag=~flag;break;case K_UP_PRES:vTaskSuspend(Task2Task_Handler);//挂起任务2printf("2 suspend\r\n");break;}vTaskDelay(10);			//延时10ms }
}//==============中断相关配置
void EXTIX_Init(void)
{NVIC_InitTypeDef   NVIC_InitStructure;EXTI_InitTypeDef   EXTI_InitStructure;//KEY_Init(); //按键对应的IO口初始化RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource4);//PE4 连接到中断线4/* 配置EXTI_Line4 */EXTI_InitStructure.EXTI_Line =  EXTI_Line4;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;		//中断事件EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿触发EXTI_InitStructure.EXTI_LineCmd = ENABLE;				//中断线使能EXTI_Init(&EXTI_InitStructure);							//配置NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;		//外部中断4NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x06;//抢占优先级6NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;	//子优先级0NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//使能外部中断通道NVIC_Init(&NVIC_InitStructure);							//配置	   
}//外部中断4服务程序
void EXTI4_IRQHandler(void)
{BaseType_t YieldRequired;//vTaskDelay(10);	//消抖-------//中断函数中不可以使用vTaskDelay()!!!if(KEY0==0)	 {			//vTaskResume(Task2Task_Handler);//这里必须使用FromISR版本的!!!	YieldRequired=xTaskResumeFromISR(Task2Task_Handler);//恢复任务2printf("2 resume\r\n");if(YieldRequired==pdTRUE){/*如果函数xTaskResumeFromISR()返回值为pdTRUE,那么说明要恢复的这个任务的任务优先级等于或者高于正在运行的任务(被中断打断的任务),所以在退出中断的时候一定要进行上下文切换!*/portYIELD_FROM_ISR(YieldRequired);}}		 EXTI_ClearITPendingBit(EXTI_Line4);//清除LINE4上的中断标志位  
}

注意事项(避免程序卡死)!!!

中断函数中不可以使用vTaskDelay()!

实验中用到了按键作为中断,本想用vTaskDelay(10)进行消抖,结果是程序运行起来后,按下中断的按键,程序卡死,通过调试运行,发现程序死在了这里:

//port.c的429~443行
void vPortEnterCritical( void )
{portDISABLE_INTERRUPTS();uxCriticalNesting++;/* This is not the interrupt safe version of the enter critical function soassert() if it is being called from an interrupt context.  Only APIfunctions that end in "FromISR" can be used in an interrupt.  Only assert ifthe critical nesting count is 1 to protect against recursive calls if theassert function also uses a critical section. */if( uxCriticalNesting == 1 ){configASSERT( ( portNVIC_INT_CTRL_REG & portVECTACTIVE_MASK ) == 0 );}
}

英文注释的大致意思是:

这不是进入关键函数的中断安全版本,所以assert()如果是从中断上下文中调用的话。只有以“FromISR”结尾的API函数才能在中断中使用。只有在关键嵌套计数为1时才使用assert,以防止assert函数也使用关键部分时出现递归调用。

所以FreeRTOS的API函数只有带FromISR后缀的才能在中断函数中使用,而**vTaskDelay()**好像也没有FromISR版本,所以就不能使用!推而广之,其它不带FromISR后缀的API函数也不能在中断函数中使用!

另外,中断函数本来就是为了处理紧急情况,在中断函数中延时是不太合理的。

中断函数中必须使用带FromISR后缀的API函数!

这一条和上一条其实是一个意思,实验中在中断函数中对信号量进行释放,使用的是xTaskResumeFromISR()函数,如果改成vTaskResume(),实测发现程序同样会卡死在这里。

中断的优先级不能设置的过高(对应数字过小)!

按键中断的优先级设置:

	NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;		//外部中断4NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x06;//抢占优先级6NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x00;	//子优先级0NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//使能外部中断通道NVIC_Init(&NVIC_InitStructure);							//配置	

第2行的抢占优先级为6是没有问题的,如果改成3,程序在进入按键中断会卡死在这里(port.c文件的末尾):

#if( configASSERT_DEFINED == 1 )void vPortValidateInterruptPriority( void ){uint32_t ulCurrentInterrupt;uint8_t ucCurrentPriority;/* 获取当前正在执行的中断的数量。*/ulCurrentInterrupt = vPortGetIPSR();/* 中断号是用户定义的中断吗?*/if( ulCurrentInterrupt >= portFIRST_USER_INTERRUPT_NUMBER ){/* 查找中断的优先级。*/ucCurrentPriority = pcInterruptPriorityRegisters[ ulCurrentInterrupt ];/* 如果一个被分配了高于configMAX_SYSCALL_INTERRUPT_PRIORITY优先级的中断的服务例程(ISR)调用了一个ISR安全的FreeRTOS API函数,那么下面的断言将失败。ISR安全FreeRTOS API函数必须*仅*被分配优先级在configMAX_SYSCALL_INTERRUPT_PRIORITY或以下的中断调用。数字上较低的中断优先级数在逻辑上代表较高的中断优先级,因此中断的优先级必须设置为等于或数字上*高于* configMAX_SYSCALL_INTERRUPT_PRIORITY。使用FreeRTOS API的中断不能保留其缺省优先级为零,因为这是可能的最高优先级,它保证高于configMAX_SYSCALL_INTERRUPT_PRIORITY,因此也保证无效。FreeRTOS维护单独的线程和ISR API函数,以确保中断条目尽可能快速和简单。以下链接提供详细资料:http://www.freertos.org/RTOS-Cortex-M3-M4.htmlhttp://www.freertos.org/FAQHelp.html */configASSERT( ucCurrentPriority >= ucMaxSysCallPriority );}/* 优先级分组:中断控制器(NVIC)允许定义每个中断优先级的比特被分割成定义中断的优先级比特和定义中断的次优先级比特。为简单起见,必须将所有位定义为抢占优先位。如果不是这样(如果某些位表示次优先级),下面的断言将失败。如果应用程序只使用CMSIS库进行中断配置,那么在启动调度程序之前,通过调用NVIC_SetPriorityGrouping(0);可以在所有Cortex-M设备上实现正确的设置。但是请注意,一些特定于供应商的外设库假设了非零优先级组设置,在这种情况下,使用值为0将导致不可预测的行为。 */configASSERT( ( portAIRCR_REG & portPRIORITY_GROUP_MASK ) <= ulMaxPRIGROUPValue );}#endif /* configASSERT_DEFINED */

注意里面的几段:

  • 中断优先级级别

如果一个被分配了高于configMAX_SYSCALL_INTERRUPT_PRIORITY优先级的中断的服务例程(ISR)调用了一个ISR安全的FreeRTOS API函数,那么下面的断言将失败。ISR安全FreeRTOS API函数必须被分配优先级在configMAX_SYSCALL_INTERRUPT_PRIORITY或以下的中断调用。

这句的意思是,如果在中断函数中使用了FreeRTOS的API函数,当然前提也是使用带FromISR后缀的,中断的优先级不能高于宏定义configMAX_SYSCALL_INTERRUPT_PRIORITY,这个宏定义在FreeRTOSConfig.h中:

/* Cortex-M specific definitions. */
#ifdef __NVIC_PRIO_BITS/* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */#define configPRIO_BITS       		__NVIC_PRIO_BITS
#else#define configPRIO_BITS       		4        /* 15 priority levels */
#endif/* 在调用“设置优先级”函数时可以使用的最低中断优先级 */
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY			0xf/* 可以被任何中断服务程序使用的最高中断优先级,它可以调用来中断安全的FreeRTOS API函数。
不要从任何比这个优先级更高的中断调用中断安全的FREERTOS API函数!(优先级越高,数值越低)*/
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY	5/* 内核端口层本身使用的中断优先级。这些对所有Cortex-M端口都是通用的,并且不依赖于任何特定的库函数。*/
#define configKERNEL_INTERRUPT_PRIORITY 		( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY 不能设置为零 !!!!
See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */
#define configMAX_SYSCALL_INTERRUPT_PRIORITY 	( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )

即中断优先级设置范围为5~15(0xf)。

当然,如果中断函数中没有使用FreeRTOS的API,那么中断的优先级就不受限制。

  • 中断优先级分组

优先级分组:中断控制器(NVIC)允许定义每个中断优先级的比特被分割成定义中断的优先级比特和定义中断的次优先级比特。为简单起见,必须将所有位定义为抢占优先位。如果不是这样(如果某些位表示次优先级),下面的断言将失败。

如果应用程序只使用CMSIS库进行中断配置,那么在启动调度程序之前,通过调用NVIC_SetPriorityGrouping(0);可以在所有Cortex-M设备上实现正确的设置。但是请注意,一些特定于供应商的外设库假设了非零优先级组设置,在这种情况下,使用值为0将导致不可预测的行为。

这两段意思是在说优先级分组的事,即所有位都是抢占优先级,没有次优先级,即中断分组模式4,也就是在主函数设置的:

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

如果换成其它的,比如NVIC_PriorityGroup_3,程序进入中断后也会卡死在。

完整工程代码已保存至GitHub:https://github.com/xxpcb/FreeRTOS-STM32F407-examples

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Oracle版SQL语句练习

    --学生表 Create table t_Student ( Sno int PRIMARY KEY, Sname char(20) ) insert into t_Student values (1,张三); insert into t_Student values (2,张a); insert into t_Student values (3,张b); insert into t_Student values (4,张c); insert into t_Student…...

    2024/4/17 23:11:41
  2. 阿里云——域名篇

    一、购买域名二、信息认证中间部分无法复现。 总之记得全部真实信息即可。三、域名备案 1、访问域名提示(个人在云解析DNS做了对应的解析):2、填写信息...

    2024/4/16 3:17:54
  3. 存储过程和函数

    【实验14-15】 (1) 创建不带参数的存储过程。 ① 创建一个从student表查询班级号为“20070301”班的学生资料的存储过程proc_1,其中包括学号、姓名、性别、出生年月等。调用proc_1存储过程,观察执行结果。 CREATE PROCEDURE proc_1() BEGINSELECT sno,sname,ssex,sbirthdayFR…...

    2024/4/16 3:17:49
  4. Centos7网卡消失不见了,怎么重新让网卡站起来

    Centos7操作系统 远程连不上Linux 操作系统 执行 ifconfig 发现网卡不见了 解决: 按顺序执行以下命令 都是在root的权限下 systemctl stop NetworkManager systemctl disable NetworkManager systemctl start network.service 最后重启网卡 重启网卡 service network restart …...

    2024/4/16 3:18:04
  5. 城市路径问题—广度优先搜算(BFS)

    例题: 已知若干个城市的地图,求从一个城市到另一个城市的路径,要求该路径经过的城市最少。 城市路线图如下:算法分析: 图的广度优先搜索类似于树的层次遍历,逐层搜索正好可以尽快找到一个结点与另一个结点相对与而言最直接的路径。所以此问题适应广度优先搜索。下面通过分…...

    2024/4/16 3:17:54
  6. opencv with ffmpeg 代码解析(二)

    1、代码入口看opencv的代码,最好的切入点就是对外的头文件 opencv.hppinclude 目录下仅有opencv.hpp文件所有的video read和write相关代码都在modules/videoio这个模块里2、IVideoCapture IVideoWriter 实现在videoio.hpp里声明了VideoCapture VideoWriter IVideoCapture IVi…...

    2024/4/16 3:17:39
  7. 线程模型

    1、背景目前对内核不熟悉的阶段,所有的知识有零碎的来自网络。但是网络上各有各见解,有片面,有大牛,有过时,有现在的。我作为一个小白,只能做到兼听则明。如果我的博客中有什么问题,请大家指出,共同进步。1.1 参考资料https://www.cnblogs.com/Mered1th/p/10745137.htm…...

    2024/4/15 5:10:21
  8. Leftmost Digit

    import java.io.IOException; import java.math.BigInteger; import java.util.Arrays; import java.util.Scanner;public class Main {//数学/** M=N^N.* log(M)=log(N^N)=N*log(N)* 10^log10(M)=M=10^(N*log10(N))=10^N * 10^log10(N)* 令N*log(N)=a+b. a为整数部分,b为小数…...

    2024/4/16 6:07:40
  9. linux网络状态及wc命令

    Linux wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。 语法 wc [-clw][–help][–version][文件…] 参数: -c或--bytes或--chars 只显示Bytes数。 -l或…...

    2024/4/15 5:10:17
  10. 学习笔记0604~0606 Vue基础学习 cms页面查询

    1.Vue的使用 1>差值表达式,{{name}}其值将会被渲染在Dom中 2>条件与循环,使用v-if,v-for 3>双向数据绑定,将Dom元素和数据对象之间进行双向绑定 4>处理用户响应事件,使用v-on指令添加一个事件监听 5>组件化构建,生成组件使用大型项目 2.MVVM 1.Model 数据存…...

    2024/4/15 5:10:16
  11. 探索web世界——任务五

    探索web世界——任务五 任务内容: 1.学习file inclusion(文件包含),了解各种伪协议姿势; 2.完成dvwa第三个模块file inclusion; 3.继续学习php. 一,file inclusion(文件包含)和各种伪协议姿势 (一)文件包含 找了找资料,理解到它的大概意思如下:文件包含漏洞:即Fi…...

    2024/4/18 16:37:18
  12. 《计算方法》课程学习(2)——第2章 非线性方程的数值解法

    ...

    2024/4/17 11:49:14
  13. jQuery实现水平菜单(含完整源码)

    本博文源于jQuery基础,旨在实现水平菜单。 实验效果实验步骤 本次实验根据节点关系进行操作,如果点击栏目,子菜单显示,因此根据这个开始制作特效。 书写html代码 栏目,子菜单就这两个栏目,都用li模拟,因此代码如下: 博主偷懒了,大家自行补全子栏目 <div class=&quo…...

    2024/4/15 5:10:19
  14. C语言基础第三课——基本的数据与运算——整型(int)实型(float、double)与字符型(char)数据、基本的数据与运算——算术运算符和算术表达式 、/运算、%运算、优先级

    之前那两篇是emmmm5.19写的,感觉有点没有那么的规范条理,而且我也记不太住以前写的啥了,所以emmmm,以后的文章就尽量写的规范一些吧。 一、基本的数据与运算——整型、实型与字符型数据 1.整型C语言中可以有十进制整数:如129、-129等。 八进制整数:以0打头。如0123、-012…...

    2024/4/15 5:10:18
  15. 推荐几款IDEA插件,最强撸码神器

    专属目录撸码神器详细介绍StackoverflowFindBugsAlibaba Java Coding GuidelinesJRebel for IntelliJLombok pluginMybatis plugin.ignoreGsonFormat总结 撸码神器 日常撸码中,总是很枯燥无味, 今天我就给大家推荐几款撸码神器!改变编码环境、提升编码功力,瞬间倍升百万倍…...

    2024/3/14 4:35:21
  16. Google Guava 编程

    前言 阿里巴巴出了一本Java规范,在国内java开发眼里被赋予了神圣的殿堂,我不推荐你用阿里巴巴的开发手册。目前Google Guava在实际应用中非常广泛,本篇博客将以博主对 Guava 使用的认识以及在项目中的经验来给大家分享!学习使用 Google Guava可以让你快乐编程,写出优雅的…...

    2024/4/16 3:18:46
  17. c++从入门到精通——异常变量生命周期

    异常变量生命周期class MyException { public:MyException(){cout << "异常变量构造" << endl;};MyException(const MyException & e){cout << "拷贝构造" << endl;}~MyException(){cout << "异常变量析构" &…...

    2024/4/16 3:18:56
  18. 七、AI学习笔记|LeNet-5

    起初被用于10分类识别...

    2024/4/18 14:06:21
  19. 字段--属性--索引器

    字段:也叫成员变量,必须是名词 field:地域 -空间–计算机程序的本源 最好都是private 或者 protected 实例字段 表示的是实例对象的状态 静态字段 static 表示的是类型当前的状态 以下是程序演示 class Program{static void Main(string[] args){List<Student> stu…...

    2024/4/16 3:18:51
  20. 动态规划基本步骤

    第一步:确定状态 研究最优策略的最后一步 化为子问题第二步:转移方程 根据子问题定义直接得到 最值型 min、max 计数型 + 可行性型 or and第三步:初始条件 考虑周全第四步:计算顺序 能够利用到之前的计算结果...

    2024/4/16 3:18:56

最新文章

  1. 全量知识系统 详细程序设计 之“编程理念”(QA百度文库)

    Q1. 今天聊聊 全量知识系统 &#xff08;“全知系统”&#xff09;详细程序设计 的“编程理念” 全量知识系统&#xff0c;或称“全知系统”&#xff0c;是一个旨在构建高效、智能、全面的知识处理平台的系统。在详细程序设计上&#xff0c;它的编程理念主要体现在以下几个方面…...

    2024/4/19 3:47:57
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 如何判断服务器的线路

    相信大部分朋友都知道&#xff0c;CN2是中国电信第二代的骨干网络&#xff0c;因此在网络连接速度和稳定性上远胜于老线路。那么如何判断 自己的服务器是否CN2线路呢﹖另外&#xff0c;单程CN2跟双程CN2又是什么意思?如何区分呢? 下面我们首先解释一下什么是单程CN2和双程CN…...

    2024/4/15 3:07:36
  4. 【Java】假如把集合体系看作购物中心

    购物中心入口&#xff1a;Java集合框架 “Java集合广场”的购物中心&#xff0c;这是一个集合了各种奇特商店的地方&#xff0c;每个商店都充满了不同的宝藏&#xff08;数据结构&#xff09;。 一楼&#xff1a;基础集合区 - Collection接口 一楼是基础集合区&#xff0c;这…...

    2024/4/15 19:17:32
  5. Linux mount用法

    在Linux系统中&#xff0c;系统自动挂载了以下挂载点&#xff1a; /: xfs文件系统&#xff0c;根文件系统, 所有其他文件系统的挂载点。 /sys: sysfs文件系统&#xff0c;提供内核对象的信息和接口。 /proc: proc文件系统&#xff0c;提供进程和系统信息。 /dev: devtmpfs文件系…...

    2024/4/16 5:31:53
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/18 0:33:31
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/18 22:36:36
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/18 9:45:31
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/17 2:33:17
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/17 7:50:46
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/18 3:56:01
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/18 3:56:04
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/18 3:55:30
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/18 3:55:54
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/18 3:55:45
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/17 21:50:30
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/15 13:53:08
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/15 9:16:52
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/18 9:24:29
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/18 3:56:18
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/18 3:55:57
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/18 3:55:50
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/15 23:28:22
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/18 3:56:20
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/18 3:56:11
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57