22.3.2-任务栈 和 系统可用堆 上手编程 FreeRTOS 项目 FreeRTOS学习笔记 FreeRTOS移植 FreeRTOS开源项目 FreeRTOS面试题汇总FreeRTOS项目实战F1
这个是全网最详细的STM32项目教学视频。
第一篇在这里:
视频在这里:
STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机  跟随)]
V3:HAL库开发、手把手教学下面功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、openmv视觉控制、电磁循迹、FreeRTOS、K210视觉智能车(更新中)、K230视觉智能车(更新中)、MSPM0G3507视觉智能车(更新中)

22.3.2-任务栈 和 系统可用堆 上手编程
复制一下22-2_LED_FreeRTOS 的代码,重新命名22-3_LED_FreeRTOS
打开LED.ioc
打开uxTaskGetStackHighWaterMark 使能

默认任务中增加获取任务高水位值和系统可用堆空间代码,时间改成10ms

		UBaseType_t stackHighWaterMark = uxTaskGetStackHighWaterMark(NULL);// 获取当前任务的栈高水位值
		printf("StartDefaultTask Mark: %u words\n", (unsigned int)stackHighWaterMark);
		size_t freeHeapSize = xPortGetFreeHeapSize();// 获取系统的可用堆空间
		printf("StartDefaultTask Free Heap Size: %u bytes\n", (unsigned int)freeHeapSize);

		UBaseType_t stackHighWaterMark = uxTaskGetStackHighWaterMark(NULL);// 获取当前任务的栈高水位值
		printf("StartLedTask Mark: %u words\n", (unsigned int)stackHighWaterMark);
		size_t freeHeapSize = xPortGetFreeHeapSize();// 获取系统的可用堆空间
		printf("StartLedTask Free Heap Size: %u bytes\n", (unsigned int)freeHeapSize);

	UBaseType_t stackHighWaterMark = uxTaskGetStackHighWaterMark(NULL);// 获取当前任务的栈高水位值
	printf("StartOledTask Mark: %u words\n", (unsigned int)stackHighWaterMark);
	size_t freeHeapSize = xPortGetFreeHeapSize();// 获取系统的可用堆空间
	printf("StartOledTask Free Heap Size: %u bytes\n", (unsigned int)freeHeapSize);
然后编译->烧录到开发板里面
因为我们使用printf是串口一输出信息,所以我们使用DAP连接底板的串口一,具体教程在(如果不会接线和使用可以具体看前面的视频):第四章-串口实验(简单输出)->4.2串口实验->接线图->使用dap

然后打开串口软件
可以看到 每个任务的任务的栈高水位值(如果这个值过小,就要提高所在任务栈大小)
还有系统的可用堆空间,如果这个值过小就要提高TOTAL_HEAP_SIZE 系统可用堆大小
在下面这个位置提高系统可用堆大小


    我们只做大家学的会的好教程,让大家快速掌握项目。
联系:1930299709@qq.com
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号