初级会员

- 积分
- 93
- 金钱
- 93
- 注册时间
- 2020-1-10
- 在线时间
- 45 小时
|
20金钱
用cubemx生成的代码,使用了FreeRTOS,主频400M;只创建一个任务,代码如下:
int main(void)
{
/* Enable I-Cache---------------------------------------------------------*/
SCB_EnableICache();
/* Enable D-Cache---------------------------------------------------------*/
SCB_EnableDCache();
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
bsp_init();
/* Init scheduler */
osKernelInitialize();
/* Create the thread(s) */
/* creation of defaultTask */
defaultTaskHandle = osThreadNew(StartDefaultTask, NULL, &defaultTask_attributes);
/* Start scheduler */
osKernelStart();
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
void StartDefaultTask(void *argument)
{
/* Infinite loop */
for(;;)
{
vTaskDelay(10);
}
/* USER CODE END 5 */
}
如果不加vTaskDelay(10)芯片温度在60多度,但是一旦加上这个延时,温度就会飙升到80多度;调用vTaskDelay会引起任务切换,当前我只有一个任务,那FreeRTOS会切换到空闲任务去执行,但是为啥会导致芯片温度升高呢,有大佬碰到过这个问题么
|
|