梳理STM32F429之通信传输部分---NO.3 串口空闲IDEL中断+DMA+FreeRTOS

目录

一、串口空闲IDEL中断:

二、串口及串口中断的配置:

三、stm32f4xx_it.h 的配置:

四、DMA 的配置:

五、主函数


如果大家有什么问题,欢迎在下面评论交流!

串口部分的详解梳理STM32F429之通信传输部分---NO.1 串口通讯

DMA直接存储器访问梳理STM32F429之通信传输部分---NO.2 DMA—直接存储区访问

FreeRTOS-二值信号量从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十一)信号量 NO.1 基本概念

                                        从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十二)信号量 NO.2 常用信号量函数接口讲解

                                        从0到1学习FreeRTOS:FreeRTOS 内核应用开发:(十三)信号量 NO.3 信号量实验

这里补充一下:串口空闲IDEL中断的一些注意事项:

一、串口空闲IDEL中断:

1、串口空闲IDEL中断的作用:

       现在有很多数据处理都要用到不定长数据,而单片机串口的RXNE中断一次只能接收一个字节的数据,没有缓冲区,无法接收一帧多个数据,利用串口IDLE空闲中断的方式接收一帧数据,方法如下:

       实现思路:采用STM32F429的串口1,并配置成空闲中断IDLE模式且使能DMA接收,并同时设置接收缓冲区和初始化DMA。那么初始化完成之后,当外部给单片机发送数据的时候,假设这帧数据长度是200个字节,那么在单片机接收到一个字节的时候并不会产生串口中断,而是DMA在后台把数据默默地搬运到你指定的缓冲区里面。当整帧数据发送完毕之后串口才会产生一次中断,此时可以利用DMA_GetCurrDataCounter();函数计算出本次的数据接受长度,从而进行数据处理

2、注意事项:避免一直进入空闲中断

       空闲中断是在检测到在数据收受后,总线上在一个字节的时间内没有再接收到数据时发生。即串口的RXNE位被置位之后才开始检测,检测到空闲之后,串口的CR1寄存器的IDLE位被硬件置1,必须采用软件将IDLE位清零才能避免反复进入空闲中断。具体的做法是先读取USART_SR,再读取USART_DR。需要注意的是,不能采用库函数USART_ClearFlag()或者USART_ClearItPending()来清除IDEL标志位。

USART_ReceiveData(USART1);    清除标志位 

二、串口及串口中断的配置:

bsp_usart.c

/********************************************************************************* @file    bsp_usart.c* @author  Sumjess* @version V1.0* @date    2019-09-xx* @brief   MDK5.27******************************************************************************* @attention** 实验平台   :STM32 F429 * CSDN Blog  :https://blog.csdn.net/qq_38351824* 微信公众号 :Tech云********************************************************************************/#include "bsp_usart.h"/*** @brief  配置嵌套向量中断控制器NVIC* @param  无* @retval 无*/// 中断服务函数  在#include "stm32f4xx_it.h"中  为了防止写错中断服务函数,请去startup_stm32f429_439xx.s中粘贴
static void NVIC_Configuration(void)
{NVIC_InitTypeDef NVIC_InitStructure;/* 嵌套向量中断控制器组选择 */NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);/* 配置USART为中断源 */NVIC_InitStructure.NVIC_IRQChannel = DEBUG_USART_IRQ;     //USART1_IRQn  串口1/* 抢断优先级为1 */NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 8;/* 子优先级为1 */NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;/* 使能中断 */NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;/* 初始化配置NVIC */NVIC_Init(&NVIC_InitStructure);
}void Debug_USART_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;
/////////////////////////////////////////////////////////////////////////////////////////////////
//--------------------------------------串口1--------------------------------------------------///* -----------------------------串口相关的GPIO初始化-------------------------------------- */	RCC_AHB1PeriphClockCmd(DEBUG_USART1_RX_GPIO_CLK|DEBUG_USART1_TX_GPIO_CLK,ENABLE);/* 使能 USART 时钟 */RCC_APB2PeriphClockCmd(DEBUG_USART1_CLK, ENABLE);  //注意!只有串口1和6是APB2为90M,其他均为APB1为45M/* GPIO初始化 */GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;     //输出推挽GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;       //上拉GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //速度50MHZ/* 配置Tx引脚为复用功能  */GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;       //复用功能模式GPIO_InitStructure.GPIO_Pin = DEBUG_USART1_TX_PIN  ;//GPIO_Pin_9  GPIO_Init(DEBUG_USART1_TX_GPIO_PORT, &GPIO_InitStructure); //GPIOA/* 配置Rx引脚为复用功能 */GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;       //复用功能模式GPIO_InitStructure.GPIO_Pin = DEBUG_USART1_RX_PIN;  //GPIO_Pin_10 GPIO_Init(DEBUG_USART1_RX_GPIO_PORT, &GPIO_InitStructure);/* 连接 PXx 到 USARTx_Tx*/GPIO_PinAFConfig(DEBUG_USART1_RX_GPIO_PORT,DEBUG_USART1_RX_SOURCE,DEBUG_USART1_RX_AF);//GPIOA---9---GPIO_AF_USART1/*  连接 PXx 到 USARTx__Rx*/GPIO_PinAFConfig(DEBUG_USART1_TX_GPIO_PORT,DEBUG_USART1_TX_SOURCE,DEBUG_USART1_TX_AF);//GPIOA--10---GPIO_AF_USART1/* -----------------------------串口配置-------------------------------------- */	/* 配置串DEBUG_USART 模式 *//* 波特率设置:DEBUG_USART_BAUDRATE */USART_InitStructure.USART_BaudRate = DEBUG_USART1_BAUDRATE;     //115200 串口波特率/* 字长(数据位+校验位):8 */USART_InitStructure.USART_WordLength = USART_WordLength_8b;    /* 停止位:1个停止位 */USART_InitStructure.USART_StopBits = USART_StopBits_1;         /* 校验位选择:不使用校验 */USART_InitStructure.USART_Parity = USART_Parity_No;            /* 硬件流控制:不使用硬件流 */                                USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;/* USART模式控制:同时使能接收和发送 */USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;/* 完成USART初始化配置 */USART_Init(DEBUG_USART1, &USART_InitStructure);/* 配置串口的接收中断 */NVIC_Configuration();/////////////////////////////////////////////////////////////////	
//USART_IT_IDLE和USART_IT_RXNE区别 //当接收到1个字节,会产生USART_IT_RXNE中断 //当接收到一帧数据,就会产生USART_IT_IDLE中断// 开启 串口空闲IDEL 中断USART_ITConfig(DEBUG_USART1, USART_IT_IDLE, ENABLE);	
//	/* 使能串口接收中断 */
//	USART_ITConfig(DEBUG_USART1, USART_IT_RXNE, ENABLE);
//////////////////////////////////////////////////////////////////* 使能串口 */USART_Cmd(DEBUG_USART1, ENABLE);
}/*****************  发送一个字符 **********************/
void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch)
{/* 发送一个字节数据到USART */USART_SendData(pUSARTx,ch);/* 等待发送数据寄存器为空 */while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);	
}/*****************  发送一个16位数 **********************/
void Usart_SendHalfWord( USART_TypeDef * pUSARTx, uint16_t ch)
{uint8_t temp_h, temp_l;/* 取出高八位 */temp_h = (ch&0XFF00)>>8;/* 取出低八位 */temp_l = ch&0XFF;/* 发送高八位 */USART_SendData(pUSARTx,temp_h);	while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);/* 发送低八位 */USART_SendData(pUSARTx,temp_l);	while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);	
}/*****************  发送字符串 **********************/
void Usart_SendString( USART_TypeDef * pUSARTx, char *str)
{unsigned int k=0;do {Usart_SendByte( pUSARTx, *(str + k) );k++;} while(*(str + k)!='\0');/* 等待发送完成 */while(USART_GetFlagStatus(pUSARTx,USART_FLAG_TC)==RESET){}
}//重定向c库函数printf到串口,重定向后可使用printf函数
int fputc(int ch, FILE *f)
{/* 发送一个字节数据到串口 */USART_SendData(DEBUG_USART_printf_choose, (uint8_t) ch);/* 等待发送完毕 */while (USART_GetFlagStatus(DEBUG_USART_printf_choose, USART_FLAG_TXE) == RESET);		return (ch);
}//重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数
int fgetc(FILE *f)
{/* 等待串口输入数据 */while (USART_GetFlagStatus(DEBUG_USART_printf_choose, USART_FLAG_RXNE) == RESET);return (int)USART_ReceiveData(DEBUG_USART_printf_choose);
}

bsp_usart.h

#ifndef __BSP_USART_H
#define	__BSP_USART_H
/********************************************************************************* @file    bsp.usart.c* @author  Sumjess* @version V1.0* @date    2019-09-10* @brief   MDK5.27******************************************************************************* @attention** 实验平台   :STM32 F429 * CSDN Blog  :https://blog.csdn.net/qq_38351824* 微信公众号 :Tech云********************************************************************************/
#include "stm32f4xx.h"
#include <stdio.h>
//---------------------------------------------------------------------------------------------//
//////////////////////////////////////////////////////////
//① 重定向c库函数printf到串口,重定向后可使用printf等函数
//② 重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数
//选择使用串口被允许使用 ① ② 
#define DEBUG_USART_printf_choose   DEBUG_USART1
////////////////////////////////////////////////////////////------------------------------------------------------//
//引脚定义
/*******************************************************/#define DEBUG_USART1                             USART1
#define DEBUG_USART1_CLK                         RCC_APB2Periph_USART1  //注意!只有串口1和6是APB2为90M,其他均为APB1为45M
#define DEBUG_USART1_BAUDRATE                    115200  //串口波特率#define DEBUG_USART1_RX_GPIO_PORT                GPIOA
#define DEBUG_USART1_RX_GPIO_CLK                 RCC_AHB1Periph_GPIOA
#define DEBUG_USART1_RX_PIN                      GPIO_Pin_10
#define DEBUG_USART1_RX_AF                       GPIO_AF_USART1  //映射
#define DEBUG_USART1_RX_SOURCE                   GPIO_PinSource10
//!!!一个引脚有许多功能,通过映射将引脚与你要选的功能连接起来。
#define DEBUG_USART1_TX_GPIO_PORT                GPIOA
#define DEBUG_USART1_TX_GPIO_CLK                 RCC_AHB1Periph_GPIOA
#define DEBUG_USART1_TX_PIN                      GPIO_Pin_9
#define DEBUG_USART1_TX_AF                       GPIO_AF_USART1  //映射
#define DEBUG_USART1_TX_SOURCE                   GPIO_PinSource9//////////////////////////////////中断部分配置//////////////////////////////////
#define DEBUG_USART_IRQHandler                  USART1_IRQHandler
#define DEBUG_USART_IRQ                 				USART1_IRQn     //串口1中断void Debug_USART_Config(void);                                 //串口初始化
void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch);     //发送一个字符
void Usart_SendHalfWord( USART_TypeDef * pUSARTx, uint16_t ch);//发送一个16位数
void Usart_SendString( USART_TypeDef * pUSARTx, char *str);    //发送字符串
int fputc(int ch, FILE *f);                                    //重定向c库函数printf到串口,重定向后可使用printf函数
int fgetc(FILE *f);                                            //重定向c库函数scanf到串口,重写向后可使用scanf、getchar等函数

三、stm32f4xx_it.h 的配置:

/* 声明引用外部二值信号量 */
extern SemaphoreHandle_t BinarySem_Handle;void USART1_IRQHandler(void)
{uint32_t ulReturn;/* 进入临界段,临界段可以嵌套 */ulReturn = taskENTER_CRITICAL_FROM_ISR();if(USART_GetITStatus(USART1,USART_IT_IDLE)!=RESET){	Uart_DMA_Rx_Data();       /* 释放一个信号量,表示数据已接收 */USART_ReceiveData(USART1); /* 清除标志位 */}	 /* 退出临界段 */taskEXIT_CRITICAL_FROM_ISR( ulReturn );
}

四、DMA 的配置:

bsp_DMA.c

char RevBuff[REVBUFF_SIZE];void USART1_RX_DMA_Config(void)
{DMA_InitTypeDef DMA_InitStructure;// 开启DMA时钟RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);// DMA复位DMA_DeInit(USART1_RX_DMA_STREAM);  // 设置DMA通道DMA_InitStructure.DMA_Channel = USART1_DMA_CHANNEL;  /*设置DMA源:串口数据寄存器地址*/DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)USART1_DR_BASE;// 内存地址(要传输的变量的指针)DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)RevBuff;// 方向:从内存到外设	DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;// 传输大小	DMA_InitStructure.DMA_BufferSize = (uint32_t)REVBUFF_SIZE;// 外设地址不增	    DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;// 内存地址自增DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;// 外设数据单位	DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;// 内存数据单位DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;	 // DMA模式,一次或者循环模式//DMA_InitStructure.DMA_Mode = DMA_Mode_Normal ;DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;	// 优先级:中	DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh; // 禁止内存到内存的传输/*禁用FIFO*/DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;        DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full;    /*存储器突发传输 1个节拍*/DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single;    /*外设突发传输 1个节拍*/DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single;    /*配置DMA2的数据流7*/		   DMA_Init(USART1_RX_DMA_STREAM, &DMA_InitStructure);// 清除DMA所有标志DMA_ClearFlag(USART1_RX_DMA_STREAM,DMA_FLAG_TCIF2);DMA_ITConfig(USART1_RX_DMA_STREAM, DMA_IT_TE, ENABLE);// 开启串口DMA接收USART_DMACmd(USART1, USART_DMAReq_Rx, ENABLE); // 使能DMADMA_Cmd (USART1_RX_DMA_STREAM,ENABLE);
}////信号量
extern SemaphoreHandle_t BinarySem_Handle;void Uart_DMA_Rx_Data(void)
{BaseType_t pxHigherPriorityTaskWoken;// 关闭DMA ,防止干扰DMA_Cmd(USART1_RX_DMA_STREAM, DISABLE);      // 清DMA标志位DMA_ClearFlag(USART1_RX_DMA_STREAM,DMA_FLAG_TCIF2);         //  重新赋值计数值,必须大于等于最大可能接收到的数据帧数目DMA_SetCurrDataCounter(USART1_RX_DMA_STREAM,REVBUFF_SIZE);     DMA_Cmd(USART1_RX_DMA_STREAM, ENABLE);       /* xSemaphoreGiveFromISR(SemaphoreHandle_t xSemaphore,BaseType_t *pxHigherPriorityTaskWoken);*///给出二值信号量 ,发送接收到新数据标志,供前台程序查询xSemaphoreGiveFromISR(BinarySem_Handle,&pxHigherPriorityTaskWoken);	//释放二值信号量//如果需要的话进行一次任务切换,系统会判断是否需要进行切换portYIELD_FROM_ISR(pxHigherPriorityTaskWoken);}

bsp_DMA.h

/*存储器到外设串口1TX*/
#define USART1_DR_BASE               (uint32_t)(&USART1->DR)		//数据发送到 USART_DR 寄存器,该寄存器相对 USART 偏移地址为0x04
#define SENDBUFF_SIZE                5000				//发送的数据量  小于65535#define USART1_DMA_CLK               RCC_AHB1Periph_DMA2	
#define USART1_DMA_CHANNEL           DMA_Channel_4       //通道4
#define USART1_TX_DMA_STREAM            DMA2_Stream7        //数据流 7
/*存储器到外设串口1RX*/
#define USART1_DR_BASE              (uint32_t)(&USART1->DR)		//数据发送到 USART_DR 寄存器,该寄存器相对 USART 偏移地址为0x04
#define REVBUFF_SIZE                 5000				//接收的数据量  小于65535#define USART1_DMA_CLK               RCC_AHB1Periph_DMA2	
#define USART1_DMA_CHANNEL           DMA_Channel_4       //通道4
#define USART1_RX_DMA_STREAM         DMA2_Stream2        //数据流 2void USART1_TX_DMA_Config(void);
void USART1_RX_DMA_Config(void);
void Uart_DMA_Rx_Data(void);

五、主函数

/********************************************************************************* @file    main.c* @author  Sumjess* @version V1.0* @date    2019-09-xx* @brief   MDK5.27******************************************************************************* @attention** 实验平台   :STM32 F429 * CSDN Blog  :https://blog.csdn.net/qq_38351824* 微信公众号 :Tech云********************************************************************************//*
*************************************************************************
*                             包含的头文件
*************************************************************************
*/
/* 标准库头文件 */
#include <string.h>/* FreeRTOS头文件 */
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"        //消息队列
#include "semphr.h"       //信号量、互斥信号量
#include "event_groups.h" //事件
#include "timers.h"       //软件定时器/* 开发板硬件bsp头文件 */
#include "sum_common.h"                  
#include "limits.h"       //任务通知使用的
/**************************** 任务句柄 ********************************/
/* * 任务句柄是一个指针,用于指向一个任务,当任务创建好之后,它就具有了一个任务句柄* 以后我们要想操作这个任务都需要通过这个任务句柄,如果是自身的任务操作自己,那么* 这个句柄可以为NULL。*/
static TaskHandle_t AppTaskCreate_Handle = NULL;/* 创建任务句柄 */static TaskHandle_t LED_Task_Handle = NULL;/* LED_Task任务句柄 */
static TaskHandle_t Uart_Task_Handle = NULL;/* KEY任务句柄 *//********************************** 内核对象句柄 *********************************/
/** 信号量,消息队列,事件标志组,软件定时器这些都属于内核的对象,要想使用这些内核* 对象,必须先创建,创建成功之后会返回一个相应的句柄。实际上就是一个指针,后续我* 们就可以通过这个句柄操作这些内核对象。** 内核对象说白了就是一种全局的数据结构,通过这些数据结构我们可以实现任务间的通信,* 任务间的事件同步等各种功能。至于这些功能的实现我们是通过调用这些内核对象的函数* 来完成的* */SemaphoreHandle_t BinarySem_Handle =NULL;   //二值信号量/******************************* 全局变量声明 ************************************/
/** 当我们在写应用程序的时候,可能需要用到一些全局变量。*/
extern char RevBuff[REVBUFF_SIZE];/********************************** 宏定义 **************************************/
/** 当我们在写应用程序的时候,可能需要用到一些宏定义。*//*
*************************************************************************
*                             函数声明
*************************************************************************
*/
static void AppTaskCreate(void);/* 用于创建任务 */static void LED_Task(void* pvParameters);/* LED_Task任务实现 */
static void Uart_Task(void* pvParameters);/* KEY_Task任务实现 */static void BSP_Init(void);/* 用于初始化板载相关资源 *//****************************************************************** @brief  主函数* @param  无* @retval 无* @note   第一步:开发板硬件初始化 第二步:创建APP应用任务第三步:启动FreeRTOS,开始多任务调度****************************************************************/
int main(void)
{	BaseType_t xReturn = pdPASS;/* 定义一个创建信息返回值,默认为pdPASS *//* 开发板硬件初始化 */BSP_Init();printf("开发板硬件初始化完毕!\r\n");/* 创建AppTaskCreate任务 */xReturn = xTaskCreate((TaskFunction_t )AppTaskCreate,  /* 任务入口函数---即任务函数的名称,需要我们自己定义并且实现。*/(const char*    )"AppTaskCreate",/* 任务名字---字符串形式, 最大长度由 FreeRTOSConfig.h 中定义的configMAX_TASK_NAME_LEN 宏指定,多余部分会被自动截掉,这里任务名字最好要与任务函数入口名字一致,方便进行调试。*/(uint16_t       )512,  /* 任务栈大小---字符串形式, 最大长度由 FreeRTOSConfig.h 中定义的configMAX_TASK_NAME_LEN 宏指定,多余部分会被自动截掉,这里任务名字最好要与任务函数入口名字一致,方便进行调试。*/(void*          )NULL,/* 任务入口函数参数---字符串形式, 最大长度由 FreeRTOSConfig.h 中定义的configMAX_TASK_NAME_LEN 宏指定,多余部分会被自动截掉,这里任务名字最好要与任务函数入口名字一致,方便进行调试。*/(UBaseType_t    )1, /* 任务的优先级---优先级范围根据 FreeRTOSConfig.h 中的宏configMAX_PRIORITIES 决定, 如果使能 configUSE_PORT_OPTIMISED_TASK_SELECTION,这个宏定义,则最多支持 32 个优先级;如果不用特殊方法查找下一个运行的任务,那么则不强制要求限制最大可用优先级数目。在 FreeRTOS 中, 数值越大优先级越高, 0 代表最低优先级。*/(TaskHandle_t*  )&AppTaskCreate_Handle);/* 任务控制块指针---在使用内存的时候,需要给任务初始化函数xTaskCreateStatic()传递预先定义好的任务控制块的指针。在使用动态内存的时候,任务创建函数 xTaskCreate()会返回一个指针指向任务控制块,该任务控制块是 xTaskCreate()函数里面动态分配的一块内存。*/ /* 启动任务调度 */           if(pdPASS == xReturn)vTaskStartScheduler();   /* 启动任务,开启调度 */elsereturn -1;  while(1);   /* 正常不会执行到这里 */    
}/************************************************************************ @ 函数名  : AppTaskCreate* @ 功能说明: 为了方便管理,所有的任务创建函数都放在这个函数里面* @ 参数    : 无  * @ 返回值  : 无**********************************************************************/
static void AppTaskCreate(void)
{BaseType_t xReturn = pdPASS;/* 定义一个创建信息返回值,默认为pdPASS */taskENTER_CRITICAL();           //进入临界区///////////////////////////////////////////////////////////////////////////////////////////////  /* 创建LED_Task任务 */xReturn = xTaskCreate((TaskFunction_t )LED_Task, /* 任务入口函数 */(const char*    )"LED_Task",/* 任务名字 */(uint16_t       )512,   /* 任务栈大小 */(void*          )NULL,	/* 任务入口函数参数 */(UBaseType_t    )2,	    /* 任务的优先级 */(TaskHandle_t*  )&LED_Task_Handle);/* 任务控制块指针 */if(pdPASS == xReturn)printf("创建LED_Task任务成功\r\n");  
////////////////////////////////////////////////////////////////////////////////////////////////* 创建 BinarySem */BinarySem_Handle = xSemaphoreCreateBinary();	 if(NULL != BinarySem_Handle)printf("BinarySem_Handle二值信号量创建成功!\r\n");/* 创建Uart_Task任务 */xReturn = xTaskCreate((TaskFunction_t )Uart_Task,  /* 任务入口函数 */(const char*    )"Uart_Task",/* 任务名字 */(uint16_t       )512,  /* 任务栈大小 */(void*          )NULL,/* 任务入口函数参数 */(UBaseType_t    )3, /* 任务的优先级 */(TaskHandle_t*  )&Uart_Task_Handle);/* 任务控制块指针 */ if(pdPASS == xReturn)printf("创建Uart_Task任务成功!\r\n");
///////////////////////////////////////////////////////////////////////////////////////////////vTaskDelete(AppTaskCreate_Handle); //删除AppTaskCreate任务taskEXIT_CRITICAL();            //退出临界区
}/*********************************************************************** @ 函数名  : LED_Task* @ 功能说明: LED_Task任务主体* @ 参数    :   * @ 返回值  : 无********************************************************************/
static void LED_Task(void* parameter)
{	while (1){LED1_ON;vTaskDelay(500);   /* 延时500个tick */printf("LED_Task Running,LED1_ON\r\n");LED1_OFF;     vTaskDelay(500);   /* 延时500个tick */		 		printf("LED_Task Running,LED1_OFF\r\n");}
}
/*********************************************************************** @ 函数名  : LED_Task* @ 功能说明: LED_Task任务主体* @ 参数    :   * @ 返回值  : 无********************************************************************/
static void Uart_Task(void* parameter)
{	BaseType_t xReturn = pdPASS;/* 定义一个创建信息返回值,默认为pdPASS */while (1){//获取二值信号量 xSemaphore,没获取到则一直等待xReturn = xSemaphoreTake(BinarySem_Handle,/* 二值信号量句柄 */portMAX_DELAY); /* 等待时间 */if(pdPASS == xReturn){LED2_TOGGLE;printf("收到数据:%s\r\n",RevBuff);memset(RevBuff,0,REVBUFF_SIZE);/* 清零 */}}                     
}/************************************************************************ @ 函数名  : BSP_Init* @ 功能说明: 板级外设初始化,所有板子上的初始化均可放在这个函数里面* @ 参数    :   * @ 返回值  : 无*********************************************************************/
static void BSP_Init(void)
{/** STM32中断优先级分组为4,即4bit都用来表示抢占优先级,范围为:0~15* 优先级分组只需要分组一次即可,以后如果有其他的任务需要用到中断,* 都统一用这个优先级分组,千万不要再分组,切忌。*/NVIC_PriorityGroupConfig( NVIC_PriorityGroup_4 );/* LED 初始化 */LED_GPIO_Config();/* 串口初始化	*/Debug_USART_Config();/* 按键初始化	*/Key_GPIO_Config();/* DMA初始化	*/USART1_RX_DMA_Config();}/********************************END OF FILE****************************/

 

 

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

相关文章

  1. JMeter中级篇-5-JMeter中BeanShell的简单举例

    这篇开始,我们来学习一些在基础篇没有介绍的功能,主要是基础篇里,要学的概念太多,这篇我们来学习一个BeanShell 在JMeter上的简单使用举例。首先,我们需要了解下什么是BeanShell, BeanShell是一个小巧免费的JAVA源码解释器,支持对象式的脚本语言特性,亦可嵌入到JAVA源代…...

    2024/4/17 20:37:02
  2. WebGL教程2:添加颜色

    欢迎来到我的第二课WebGL教程!这个时间我们来学习怎样向场景里面添加颜色。它是以Nehe的OpenGL教程第三课为基础的。这儿是这节课的代码在支持WebGL的浏览器运行看起来的效果:一个小的忠告:这些教程所针对的人群是具有一定的编程知识,但是没有真正的3D图形编程经验;目的是…...

    2024/4/17 20:38:17
  3. 基于thinkPHP5.0开发,傻瓜式安装小程序及公众号商城

    CRMEB小程序商城,是我们开发的一款开源电商系统,为中小企业提供最佳的新零售解决方案。采用thinkPHP5.0框架开发,执行效率、扩展性、稳定性值得信赖。永久更新维护,界面美观大方,一键式傻瓜安装小程序及公众号商城。 开源地址: http://github.crmeb.net/u/muzi...

    2024/4/11 22:01:30
  4. 计算字符串字节长度

    var str="assd啊,公告";function byteLength(str){var count = 0;for(var i=0;i<str.length;i++){if(str.charCodeAt(i)>255){count+=2;}else{count++;}}return count;}运行结果:转载于:https://www.cnblogs.com/ChenMM/p/9588048.html...

    2024/4/17 20:35:15
  5. python 中subprocess.Popen()的使用

    subprocess 允许你去创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入、标准输出、标准错误以及返回码等。subprocess.Popen()subprocess 模块中基本的进程创建和管理由Popen 类来处理.subprocess.popen是用来替代os.popen的.from subprocess import Popen…...

    2024/4/20 12:56:56
  6. 三星笔记本R429 实体拆机

    三星笔记本R429 实体拆机三星R429拆机首先感谢小牛同学提供三星R429笔记本电脑一台。炎热的夏天,小牛觉着,自己的三星R429有那么点小热,于是就开始了自己的拆机。这里提醒大家,拆机需谨慎……先上个完整图:小牛的三星R429购于2010年12月,已经过保,所以就自己动手了,这里…...

    2024/4/29 12:05:59
  7. Jmeter中使用BeanShell获取指定的值

    Jmeter中可以使用Beanshell编写代码,来实现很多功能,这里介绍的是提取指定的值 **场景:**需要审核一条数据,前提是,是有这条数据的status是4的时候,该条数据才可以进行审核操作 具体操作方法: 1.正常添加请求,获取返回数据,返回的数据中,"data"是一个对象,…...

    2024/4/19 15:57:52
  8. SuperMap iClient3D for WebGL教程(影像篇)-OpenStreetMap

    作者:为梦齐舞本文同步更新于简书文章https://www.jianshu.com/p/1609a02dc88f 据百度百科介绍:OpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。 OSM是一款由网络大众共同打造的免费开源、可编辑的地图…...

    2024/5/5 17:33:19
  9. STM32F429 自制开发板

    上次讲到自制了F407开发板,用下来都不错,但是有个遗憾就是407没有LTDC,最近一直在研究液晶屏,着了迷一样,研究了一圈,觉得F429是最好的选择,网上的开发板价格都较贵,关键是好多都没有引出LTDC接口,决定自制一块开发板自带LTDC+SDRAM。原理图 F429的原理图不像407,网上的…...

    2024/4/17 20:39:42
  10. OC中对象类型以及其常用方法

    OC中对象类型以及其常用方法一 不可变字符串:NSString1.初始化:initWithStringNSString * str = [[NSString alloc] initWithString:@"1234assd"];2.遍历构造器:stringWithStringNSString * str = [NSString stringWithString:@"1234assd"];3.在字符串后…...

    2024/4/17 20:39:36
  11. jmeter 通过beanshell获取变量

    第一种1.测试计划输入用户自定义变量2.添加beanshell sampler,通过vars.get 获取变量,vars.get("name"),vars.put赋值,格式为 vars.put("key","value")3.添加debug sampler,添加查看结果树,运行查看结果第二种1.添加beanshell sampler,通过…...

    2024/4/17 20:38:23
  12. Python进程处理之subprocess

    python如何通过subprocess来处理CMD命令呢?简单看个例子:# _*_ coding:utf-8 _*_import subprocess __author__ = adminprocess = subprocess.Popen("ipconfig", shell=True).communicate()效果图:再看个例子:# _*_ coding:utf-8 _*_import subprocess __aut…...

    2024/4/20 2:44:20
  13. SuperMap iClient3D for WebGL教程(影像篇)-ImageryLayer

    作者:为梦齐舞本文同步更新于简书文章https://www.jianshu.com/p/cc38d1cc2d7e 上诉文章中介绍了很多关于ImageryProvider的例子,接下来我们一起了解下ImageryLayer。 一、ImageryProvider与ImageryLayer的区别 通常我们创建一个ImageryProvider是为了创建一个ImageryLayer显…...

    2024/4/19 13:15:46
  14. OC对象类型

    OC中对象类型以及其常用方法一 不可变字符串:NSString1.初始化:initWithStringNSString * str = [[NSString alloc] initWithString:@"1234assd"];2.遍历构造器:stringWithStringNSString * str = [NSString stringWithString:@"1234assd"];3.在字符串后…...

    2024/4/17 20:38:26
  15. 使用subprocess.open

    1、一般格式 cmdres = subprocess.Popen(cmdstr, shell = True,stdout = subprocess.PIPE, stderr = subprocess.STDOUT)for i in cmdres.stdout.readlines():print ifi cmdres.returncode ! = 0print errorsubprocess.PIPE 在创建Popen对象时,subprocess.PIPE可以初始化stdi…...

    2024/4/17 20:37:17
  16. 【stm32F429开发日志】STM32F429上 NES 模拟器 移植 试玩

    前段时间意外获得论坛送的一块STM32F429探索套件,初步了解了一下STM32F429这个芯片,感觉ST的MCU终于向高端MCU迈出了一步:STM32F429可以支持SDRAM和LCD控制器了,主频最高180MHz,这在高端MCU中还是比较少见的(不过要知道 NXP 的高端产品早都具备这些功能了,只是NXP的MCU没…...

    2024/4/20 9:01:58
  17. SuperMap iClient3D for WebGL教程 绘制椭圆环状面

    作者:Nec_Eu环状面(或椭圆环状面),可在“圆环套圆环”的显示效果中用于显示次级范围或更低级别范围,在军事、规划等领域均有不同程度的应用。然而,在Cesium的开放接口——Entity中,并没有环状面的直接接口,这为环状面的制作造成了困难。那么我们应该怎么制作环状面呢?…...

    2024/4/28 14:20:00
  18. 【JMeter系列-6】JMeter BeanShell Sampler与JMeter BeanShell断言

    JMeter BeanShell Sampler与JMeter BeanShell断言前言1 BeanShell操作变量2 BeanShell引用外部资源2.1 引用java文件2.2 addClassPath2.3 引用jar包3 BeanShell断言3.1 校验JSONObject3.2 校验含JSONArray的JSON 前言 BeanShell是一种完全符合Java语法规范的脚本语言,但又拥有…...

    2024/4/20 12:36:49
  19. 电商平台-异常模块的设计与架构

    说明:任何一个软件系统都会出现各式各样的异常与错误,我们需要根据异常的情况进行捕获与分析,改善自己的代码,让其更加的稳定的,快速的运行,那么作为一个B2B的Java开源生鲜电商平台,我们的异常需要思考以下几个维度。 1. 运行的代码异常 说明:代码在运行的过程中,难…...

    2024/4/24 19:13:11
  20. 分享STM32F429开发板例程资料集,网盘哦

    WB-RedDragon429开发板是基本ST 公司STM32F429IGT6(LQFP176)微控制器的一款学习板,该控制器以ARM Cortex™-M4 内核为核心,自带有LCD-TFT控制器、图形专用Chrom-ART加速器和SDRAM存储器接口,LCD-TFT控制器最大支持1024*768的双图层;带FPU单元,提升了计算能力,可以进行一…...

    2024/4/19 22:51:06

最新文章

  1. linux中Could not load [org.bouncycastle.jcajce.provider.symmetric.RC2$KeyGen

    问题描述 在linux中部署java项目&#xff0c;项目中有使用凭证加密。 解决方法 查询项目使用Java的在系统中的位置&#xff1b;找到对应java的jre路径&#xff1b;将bcprov-jdk14-127.jar放入JAVA_HOME/jre/lib/ext下&#xff1b;打开JAVA_HOME/jre/lib/security下的java.se…...

    2024/5/5 21:36:33
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 探索进程控制第一弹(进程终止、进程等待)

    文章目录 进程创建初识fork函数fork函数返回值fork常规用法fork调用失败的原因 写时拷贝进程终止进程终止是在做什么&#xff1f;进程终止的情况代码跑完&#xff0c;结果正确/不正确代码异常终止 如何终止 进程等待概述进程等待方法wait方法waitpid 进程创建 初识fork函数 在…...

    2024/5/5 1:11:34
  4. OpenHarmony开发-连接开发板调试应用

    在 OpenHarmony 开发过程中&#xff0c;连接开发板进行应用调试是一个关键步骤&#xff0c;只有在真实的硬件环境下&#xff0c;我们才能测试出应用更多的潜在问题&#xff0c;以便后续我们进行优化。本文详细介绍了连接开发板调试 OpenHarmony 应用的操作步骤。 首先&#xf…...

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

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

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/4 23:55:17
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

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

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/4 18:20:48
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

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

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

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/4 23:55:01
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

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

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

    2022/11/19 21:17:18
  26. 错误使用 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,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
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  44. 如何在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