FreeRTos 正点原子 笔记(1):freertos 源文件结构,移植步骤,裁剪后的 103ZET6 的 FreeRTOSConfig . h;驱动中 delay、sys、usart 源文件的修改

发布时间:2026/10/30 2:40:57

FreeRTos 正点原子 笔记(1):freertos 源文件结构,移植步骤,裁剪后的 103ZET6 的 FreeRTOSConfig . h;驱动中 delay、sys、usart 源文件的修改 1谢谢正点原子公布的课程文件结构2移植步骤添加配置文件到项目103ZET6 里的老师们配置好的 FreeRTOSConfig . h:#ifndefFREERTOS_CONFIG_H#defineFREERTOS_CONFIG_H/* 头文件 */#include./SYSTEM/sys/sys.h#include./SYSTEM/usart/usart.h#includestdint.hexternuint32_tSystemCoreClock;/* 基础配置项 */#defineconfigUSE_PREEMPTION1/* 1: 抢占式调度器, 0: 协程式调度器, 无默认需定义 */#defineconfigUSE_PORT_OPTIMISED_TASK_SELECTION1/* 1: 使用硬件计算下一个要运行的任务, 0: 使用软件算法计算下一个要运行的任务, 默认: 0 */#defineconfigUSE_TICKLESS_IDLE0/* 1: 使能tickless低功耗模式, 默认: 0 */#defineconfigCPU_CLOCK_HZSystemCoreClock/* 定义CPU主频, 单位: Hz, 无默认需定义 */#defineconfigSYSTICK_CLOCK_HZ(configCPU_CLOCK_HZ/8)/* 定义SysTick时钟频率当SysTick时钟频率与内核时钟频率不同时才可以定义, 单位: Hz, 默认: 不定义 */#defineconfigTICK_RATE_HZ1000/* 定义系统时钟节拍频率, 单位: Hz, 无默认需定义 */#defineconfigMAX_PRIORITIES32/* 定义最大优先级数, 最大优先级configMAX_PRIORITIES-1, 无默认需定义 */#defineconfigMINIMAL_STACK_SIZE128*定义空闲任务的栈空间大小,单位:Word,无默认需定义*/*#defineconfigMAX_TASK_NAME_LEN16/* 定义任务名最大字符数, 默认: 16 */#defineconfigUSE_16_BIT_TICKS0/* 1: 定义系统时钟节拍计数器的数据类型为16位无符号数, 无默认需定义 */#defineconfigIDLE_SHOULD_YIELD1/* 1: 使能在抢占式调度下,同优先级的任务能抢占空闲任务, 默认: 1 */#defineconfigUSE_TASK_NOTIFICATIONS1/* 1: 使能任务间直接的消息传递,包括信号量、事件标志组和消息邮箱, 默认: 1 */#defineconfigTASK_NOTIFICATION_ARRAY_ENTRIES1/* 定义任务通知数组的大小, 默认: 1 */#defineconfigUSE_MUTEXES1/* 1: 使能互斥信号量, 默认: 0 */#defineconfigUSE_RECURSIVE_MUTEXES1/* 1: 使能递归互斥信号量, 默认: 0 */#defineconfigUSE_COUNTING_SEMAPHORES1/* 1: 使能计数信号量, 默认: 0 */#defineconfigUSE_ALTERNATIVE_API0/* 已弃用!!! */#defineconfigQUEUE_REGISTRY_SIZE8/* 定义可以注册的信号量和消息队列的个数, 默认: 0 */#defineconfigUSE_QUEUE_SETS1/* 1: 使能队列集, 默认: 0 */#defineconfigUSE_TIME_SLICING1/* 1: 使能时间片调度, 默认: 1 */#defineconfigUSE_NEWLIB_REENTRANT0/* 1: 任务创建时分配Newlib的重入结构体, 默认: 0 */#defineconfigENABLE_BACKWARD_COMPATIBILITY0/* 1: 使能兼容老版本, 默认: 1 */#defineconfigNUM_THREAD_LOCAL_STORAGE_POINTERS0/* 定义线程本地存储指针的个数, 默认: 0 */#defineconfigSTACK_DEPTH_TYPEuint16_t/* 定义任务堆栈深度的数据类型, 默认: uint16_t */#defineconfigMESSAGE_BUFFER_LENGTH_TYPEsize_t/* 定义消息缓冲区中消息长度的数据类型, 默认: size_t *//* 内存分配相关定义 */#defineconfigSUPPORT_STATIC_ALLOCATION0/* 1: 支持静态申请内存, 默认: 0 */#defineconfigSUPPORT_DYNAMIC_ALLOCATION1/* 1: 支持动态申请内存, 默认: 1 */#defineconfigTOTAL_HEAP_SIZE((size_t)(10*1024))/* FreeRTOS堆中可用的RAM总量, 单位: Byte, 无默认需定义 */#defineconfigAPPLICATION_ALLOCATED_HEAP0/* 1: 用户手动分配FreeRTOS内存堆(ucHeap), 默认: 0 */#defineconfigSTACK_ALLOCATION_FROM_SEPARATE_HEAP0/* 1: 用户自行实现任务创建时使用的内存申请与释放函数, 默认: 0 *//* 钩子函数相关定义 */#defineconfigUSE_IDLE_HOOK0/* 1: 使能空闲任务钩子函数, 无默认需定义 */#defineconfigUSE_TICK_HOOK0/* 1: 使能系统时钟节拍中断钩子函数, 无默认需定义 */#defineconfigCHECK_FOR_STACK_OVERFLOW0/* 1: 使能栈溢出检测方法1, 2: 使能栈溢出检测方法2, 默认: 0 */#defineconfigUSE_MALLOC_FAILED_HOOK0/* 1: 使能动态内存申请失败钩子函数, 默认: 0 */#defineconfigUSE_DAEMON_TASK_STARTUP_HOOK0/* 1: 使能定时器服务任务首次执行前的钩子函数, 默认: 0 *//* 运行时间和任务状态统计相关定义 */#defineconfigGENERATE_RUN_TIME_STATS0/* 1: 使能任务运行时间统计功能, 默认: 0 */#ifconfigGENERATE_RUN_TIME_STATS// 就在上面#include./BSP/TIMER/btim.h#defineportCONFIGURE_TIMER_FOR_RUN_TIME_STATS()ConfigureTimeForRunTimeStats()externuint32_tFreeRTOSRunTimeTicks;#defineportGET_RUN_TIME_COUNTER_VALUE()FreeRTOSRunTimeTicks#endif#defineconfigUSE_TRACE_FACILITY1/* 1: 使能可视化跟踪调试, 默认: 0 */#defineconfigUSE_STATS_FORMATTING_FUNCTIONS1/* 1: configUSE_TRACE_FACILITY为1时会编译vTaskList()和vTaskGetRunTimeStats()函数, 默认: 0 *//* 协程相关定义 */#defineconfigUSE_CO_ROUTINES0/* 1: 启用协程, 默认: 0 */#defineconfigMAX_CO_ROUTINE_PRIORITIES2/* 定义协程的最大优先级, 最大优先级configMAX_CO_ROUTINE_PRIORITIES-1, 无默认configUSE_CO_ROUTINES为1时需定义 *//* 软件定时器相关定义 */#defineconfigUSE_TIMERS1/* 1: 使能软件定时器, 默认: 0 */#defineconfigTIMER_TASK_PRIORITY(configMAX_PRIORITIES-1)/* 定义软件定时器任务的优先级, 无默认configUSE_TIMERS为1时需定义 */#defineconfigTIMER_QUEUE_LENGTH5/* 定义软件定时器命令队列的长度, 无默认configUSE_TIMERS为1时需定义 */#defineconfigTIMER_TASK_STACK_DEPTH(configMINIMAL_STACK_SIZE*2)/* 定义软件定时器任务的栈空间大小, 无默认configUSE_TIMERS为1时需定义 *//* 可选函数, 1: 使能 */#defineINCLUDE_vTaskPrioritySet1/* 设置任务优先级 */#defineINCLUDE_uxTaskPriorityGet1/* 获取任务优先级 */#defineINCLUDE_vTaskDelete1/* 删除任务 */#defineINCLUDE_vTaskSuspend1/* 挂起任务 */#defineINCLUDE_xResumeFromISR1/* 恢复在中断中挂起的任务 */#defineINCLUDE_vTaskDelayUntil1/* 任务绝对延时 */#defineINCLUDE_vTaskDelay1/* 任务延时 */#defineINCLUDE_xTaskGetSchedulerState1/* 获取任务调度器状态 */#defineINCLUDE_xTaskGetCurrentTaskHandle1/* 获取当前任务的任务句柄 */#defineINCLUDE_uxTaskGetStackHighWaterMark1/* 获取任务堆栈历史剩余最小值 */#defineINCLUDE_xTaskGetIdleTaskHandle1/* 获取空闲任务的任务句柄 */#defineINCLUDE_eTaskGetState1/* 获取任务状态 */#defineINCLUDE_xEventGroupSetBitFromISR1/* 在中断中设置事件标志位 */#defineINCLUDE_xTimerPendFunctionCall1/* 将函数的执行挂到定时器服务任务 */#defineINCLUDE_xTaskAbortDelay1/* 中断任务延时 */#defineINCLUDE_xTaskGetHandle1/* 通过任务名获取任务句柄 */#defineINCLUDE_xTaskResumeFromISR1/* 恢复在中断中挂起的任务 *//* 中断嵌套行为配置 */#ifdef__NVIC_PRIO_BITS#defineconfigPRIO_BITS__NVIC_PRIO_BITS#else#defineconfigPRIO_BITS4// 似乎是这一行有效#endif#defineconfigLIBRARY_LOWEST_INTERRUPT_PRIORITY15/* 中断最低优先级 */#defineconfigLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY5/* FreeRTOS可管理的最高中断优先级 */#defineconfigKERNEL_INTERRUPT_PRIORITY(configLIBRARY_LOWEST_INTERRUPT_PRIORITY(8-configPRIO_BITS))#defineconfigMAX_SYSCALL_INTERRUPT_PRIORITY(configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY(8-configPRIO_BITS))#defineconfigMAX_API_CALL_INTERRUPT_PRIORITYconfigMAX_SYSCALL_INTERRUPT_PRIORITY/* FreeRTOS中断服务函数相关定义 */#definexPortPendSVHandlerPendSV_Handler#definevPortSVCHandlerSVC_Handler/* 断言 */#definevAssertCalled(char,int)printf(Error: %s, %d\r\n,char,int)#defineconfigASSERT(x)if((x)0)vAssertCalled(__FILE__,__LINE__)/* FreeRTOS MPU 特殊定义 *///#define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0//#define configTOTAL_MPU_REGIONS 8//#define configTEX_S_C_B_FLASH 0x07UL//#define configTEX_S_C_B_SRAM 0x07UL//#define configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY 1//#define configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS 1/* ARMv8-M 安全侧端口相关定义。 *///#define secureconfigMAX_SECURE_CONTEXTS 5#endif/* FREERTOS_CONFIG_H */3驱动中 delay、sys、usart 源文件的修改4以下是 F103zet6 的 delay . c#include./SYSTEM/sys/sys.h#include./SYSTEM/delay/delay.hstaticuint16_tg_fac_us0;/* us延时倍乘数 *//* 如果SYS_SUPPORT_OS定义了,说明要支持OS了(不限于UCOS) */#ifSYS_SUPPORT_OS/* 添加公共头文件 (FreeRTOS 需要用到) */#includeFreeRTOS.h#includetask.hexternvoidxPortSysTickHandler(void);/** * brief systick中断服务函数,使用OS时用到 * param ticks: 延时的节拍数 * retval 无 */voidSysTick_Handler(void){HAL_IncTick();if(xTaskGetSchedulerState()!taskSCHEDULER_NOT_STARTED)xPortSysTickHandler();/* OS开始跑了,才执行正常的调度处理 */}#endif/** * brief 初始化延迟函数 * param sysclk: 系统时钟频率, 即CPU频率(HCLK) * retval 无 */voiddelay_init(uint16_tsysclk){#ifSYS_SUPPORT_OS/* 如果需要支持OS. */uint32_treload;#endifSysTick-CTRL0;/* 清Systick状态以便下一步重设如果这里开了中断会关闭其中断 */HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK_DIV8);/* SYSTICK使用内核时钟源8分频,因systick的计数器最大值只有2^24 */g_fac_ussysclk/8;/* 不论是否使用OS,g_fac_us都需要使用,作为1us的基础时基 */#ifSYS_SUPPORT_OS/* 如果需要支持OS. */reloadsysclk/8;/* 每秒钟的计数次数 单位为M */reload*1000000/configTICK_RATE_HZ;/* 根据delay_ostickspersec设定溢出时间reload为24位寄存器,最大值:16777216,在9M下,约合1.86s左右 */SysTick-CTRL|11;/* 开启SYSTICK中断 */SysTick-LOADreload;/* 每1/delay_ostickspersec秒中断一次 */SysTick-CTRL|10;/* 开启SYSTICK */#endif}#ifSYS_SUPPORT_OS/* 如果需要支持OS, 用以下代码 *//** * brief 延时nus * param nus: 要延时的us数. * note nus取值范围: 0 ~ 477218588(最大值即2^32 / g_fac_us g_fac_us 9) * retval 无 */voiddelay_us(uint32_tnus){uint32_tticks;uint32_ttold,tnow,tcnt0;uint32_treload;reloadSysTick-LOAD;/* LOAD的值 */ticksnus*g_fac_us;/* 需要的节拍数 */toldSysTick-VAL;/* 刚进入时的计数器值 */while(1){tnowSysTick-VAL;if(tnow!told){if(tnowtold)tcnttold-tnow;/* 这里注意一下SYSTICK是一个递减的计数器就可以了. */elsetcntreload-tnowtold;toldtnow;if(tcntticks)break;/* 时间超过/等于要延迟的时间,则退出. */}}}/** * brief 延时nms * param nms: 要延时的ms数 (0 nms 65535) * retval 无 */voiddelay_ms(uint16_tnms){uint32_ti;for(i0;inms;i)delay_us(1000);}#else/* 不使用OS时, 用以下代码 */#endif45**103c8t6 里的别的大师配置的 FreeRTOSConfig . h 所有的宏定义都是有效的 ** :#ifndefFREERTOS_CONFIG_H#defineFREERTOS_CONFIG_H#includesys.h#includeusart.h//针对不同的编译器调用不同的stdint.h文件#ifdefined(__ICCARM__)||defined(__CC_ARM)||defined(__GNUC__)#includestdint.hexternuint32_tSystemCoreClock;#endif//断言#definevAssertCalled(char,int)printf(Error:%s,%d\r\n,char,int)#defineconfigASSERT(x)if((x)0)vAssertCalled(__FILE__,__LINE__)/***************************************************************************************************************//* FreeRTOS基础配置配置选项 *//***************************************************************************************************************/#defineconfigUSE_PREEMPTION1//1 使用抢占式内核0 使用协程#defineconfigUSE_TIME_SLICING1//1 使能时间片调度(默认式使能的)#defineconfigUSE_PORT_OPTIMISED_TASK_SELECTION1//1 启用特殊方法来选择下一个要运行的任务//一般是硬件计算前导零指令如果所使用的 MCU 没有这些硬件指令的话此宏应该设置为 0#defineconfigUSE_TICKLESS_IDLE0// 1启用低功耗 tickless 模式#defineconfigUSE_QUEUE_SETS1//为 1 时启用队列#defineconfigCPU_CLOCK_HZ(SystemCoreClock)// CPU频率#defineconfigTICK_RATE_HZ(1000)//时钟节拍频率这里设置为 1000周期就是1ms#defineconfigMAX_PRIORITIES(32)//可使用的最大优先级#defineconfigMINIMAL_STACK_SIZE((unsignedshort)130)//空闲任务使用的堆栈大小#defineconfigMAX_TASK_NAME_LEN(16)//任务名字字符串长度#defineconfigUSE_16_BIT_TICKS0//系统节拍计数器变量数据类型//1表示为16位无符号整形0表示为32位无符号整形#defineconfigIDLE_SHOULD_YIELD1//为1时空闲任务放弃CPU使用权给其他同优先级的用户任务#defineconfigUSE_TASK_NOTIFICATIONS1//为1时开启任务通知功能默认开启#defineconfigUSE_MUTEXES1//为1时使用互斥信号量#defineconfigQUEUE_REGISTRY_SIZE8//不为0时表示启用队列记录具体的值是可以//记录的队列和信号量最大数目。#defineconfigCHECK_FOR_STACK_OVERFLOW0//大于0时启用堆栈溢出检测功能如果使用此功能//用户必须提供一个栈溢出钩子函数如果使用的话此值可以为1或者2因为有两种栈溢出检测方法。#defineconfigUSE_RECURSIVE_MUTEXES1//为1时使用递归互斥信号量#defineconfigUSE_MALLOC_FAILED_HOOK0//1使用内存申请失败钩子函数#defineconfigUSE_APPLICATION_TASK_TAG0#defineconfigUSE_COUNTING_SEMAPHORES1//为1时使用计数信号量/***************************************************************************************************************//* FreeRTOS与内存申请有关配置选项 *//***************************************************************************************************************/#defineconfigSUPPORT_STATIC_ALLOCATION1//支持静态内存申请#defineconfigSUPPORT_DYNAMIC_ALLOCATION1//支持动态内存申请#defineconfigTOTAL_HEAP_SIZE((size_t)(10*1024))//系统所有总的堆大小/***************************************************************************************************************//* FreeRTOS与钩子函数有关的配置选项 *//***************************************************************************************************************/#defineconfigUSE_IDLE_HOOK0//1使用空闲钩子0不使用#defineconfigUSE_TICK_HOOK0//1使用时间片钩子0不使用/***************************************************************************************************************//* FreeRTOS与运行时间和任务状态收集有关的配置选项 *//***************************************************************************************************************/#defineconfigGENERATE_RUN_TIME_STATS0//为1时启用运行时间统计功能#defineconfigUSE_TRACE_FACILITY1//为1启用可视化跟踪调试#defineconfigUSE_STATS_FORMATTING_FUNCTIONS1//与宏configUSE_TRACE_FACILITY同时为1时会编译下面3个函数//prvWriteNameToBuffer(), vTaskList(), vTaskGetRunTimeStats()/***************************************************************************************************************//* FreeRTOS与协程有关的配置选项 *//***************************************************************************************************************/#defineconfigUSE_CO_ROUTINES0//为1时启用协程启用协程以后必须添加文件croutine.c#defineconfigMAX_CO_ROUTINE_PRIORITIES(2)//协程的有效优先级数目/***************************************************************************************************************//* FreeRTOS与软件定时器有关的配置选项 *//***************************************************************************************************************/#defineconfigUSE_TIMERS1//为1时启用软件定时器#defineconfigTIMER_TASK_PRIORITY(configMAX_PRIORITIES-1)//软件定时器优先级#defineconfigTIMER_QUEUE_LENGTH5//软件定时器队列长度#defineconfigTIMER_TASK_STACK_DEPTH(configMINIMAL_STACK_SIZE*2)//软件定时器任务堆栈大小/***************************************************************************************************************//* FreeRTOS可选函数配置选项 *//***************************************************************************************************************/#defineINCLUDE_xTaskGetSchedulerState1#defineINCLUDE_vTaskPrioritySet1#defineINCLUDE_uxTaskPriorityGet1#defineINCLUDE_vTaskDelete1#defineINCLUDE_vTaskCleanUpResources1#defineINCLUDE_vTaskSuspend1//挂起任务#defineINCLUDE_vTaskDelayUntil1#defineINCLUDE_vTaskDelay1#defineINCLUDE_eTaskGetState1#defineINCLUDE_xTimerPendFunctionCall1/***************************************************************************************************************//* FreeRTOS与中断有关的配置选项 *//***************************************************************************************************************/#ifdef__NVIC_PRIO_BITS#defineconfigPRIO_BITS__NVIC_PRIO_BITS#else#defineconfigPRIO_BITS4#endif#defineconfigLIBRARY_LOWEST_INTERRUPT_PRIORITY15//中断最低优先级#defineconfigLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY5//系统可管理的最高中断优先级#defineconfigKERNEL_INTERRUPT_PRIORITY\(configLIBRARY_LOWEST_INTERRUPT_PRIORITY(8-configPRIO_BITS))#defineconfigMAX_SYSCALL_INTERRUPT_PRIORITY\(configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY(8-configPRIO_BITS))/***************************************************************************************************************//* FreeRTOS与中断服务函数有关的配置选项 *//***************************************************************************************************************/#definexPortPendSVHandlerPendSV_Handler#definevPortSVCHandlerSVC_Handler#endif/* FREERTOS_CONFIG_H */6谢谢
延伸阅读

更多相关文章

2026/10/30 2:40:57

录音APP怎么切换语言?多语言版本如何使用

最常见的场景是这样的:留学生用国产录音工具录国外课堂内容,录完后发现整个界面变成了英文或者日文,菜单看不懂,找不到已录文件的入口。再比如国内用户出国短期出差,打开常用的录音工具,所有设置项切换成了…

2026/10/30 2:40:57

安卓多语言会议录音APP如何解决跨语言沟通难题

跨语言会议里最容易出问题的环节,往往不是录音本身,而是录完之后的翻译。一场涉及中、英、日三方的线上对接,转写准确率可能达到95%,但翻译后的文本频繁出现术语误译——"尽职调查"翻成"due investigation"&a…

2026/10/30 5:16:09

线性代数及其应用第五版:矩阵、特征值与最小二乘学习路线

简介:《线性代数及其应用》第5版英文原版PDF面向高校理工科、经济管理类学生以及人工智能与机器学习自学者,用于系统学习线性方程组、矩阵运算、行列式、向量空间、特征值与特征向量、正交性、最小二乘和二次型等核心内容。资源包为1个PDF文件&#xff0…

2026/10/30 5:16:09

Flutter与Firebase构建用户系统全流程指南

1. 项目概述与目标"新建一个名为User的APP"这个项目标题看似简单,却蕴含着移动应用开发的核心流程。作为一个完整的APP开发项目,我们需要从零开始构建一个以用户为中心的应用程序,涵盖从概念设计到最终发布的完整生命周期。这个项目…

2026/10/30 5:16:09

软件测试-接口自动化-面试题1

接口自动化测试在持续集成中,如何快速定位失败原因?接口自动化测试在持续集成中,主要通过查看执行报告、错误日志和请求响应信息,快速定位失败原因。查看测试报告:通过 Pytest 的 Allure 报告,定位失败的测…

2026/10/30 5:16:09

线性代数工程实践:解方程、矩阵分解与数值稳定性

简介:《线性代数及其应用》第五版英文原版电子书,面向高校理工科学生、考研备考者,以及人工智能与机器学习方向的学习者,用于系统建立矩阵运算、向量空间、特征值与特征向量、正交性、线性变换等核心知识框架。压缩包内含1个PDF文…

2026/10/30 5:16:09

C#与YOLO结合的工业视觉追踪与控制系统开发

1. 项目概述:当C#遇上YOLO的智能视觉革命在工业自动化和机器人技术快速发展的今天,动态目标追踪与自主导航已成为智能制造的核心需求。这个项目通过C#上位机与YOLO目标检测的深度整合,构建了一套从物体识别到运动控制的完整解决方案。不同于简…

2026/10/30 5:11:08

从155.520 Mb/s到63路2M:SDH帧结构与复用原理

简介:面向华为HCIA-Transmission认证备考者及传输网络初学者,这份培训课程PDF系统梳理光传送网基础与主流传输体制。内容从光传输理论演进切入,串联PDH、SDH、DWDM、OTN、PTN与RTN等应用场景,重点讲解SDH的技术背景、PDH局限&…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑