- 博客(120)
- 资源 (5)
- 问答 (4)
- 收藏
- 关注
原创 FREERTOS检测任务栈内存情况
摘要:本文介绍了RTOS中两种监控任务栈使用情况的方法。1)栈溢出钩子函数vApplicationStackOverflowHook,当任务栈溢出时触发,可打印错误任务名并进入死循环;2)uxTaskGetStackHighWaterMark函数,用于获取任务栈的高水位线(剩余最小栈空间),需配合宏INCLUDE_uxTaskGetStackHighWaterMark2和configCHECK_FOR_STACK_OVERFLOW2使用。这两种方法有助于合理设置任务栈大小和及时发现栈溢出问题。
2026-01-24 10:44:24
99
原创 PY32做RTC万年历
本文介绍了RTC实时时钟的配置与使用。通过HAL库函数实现RTC初始化、时间设置和读取功能。代码展示了如何配置外部晶振(LSE)或内部低速振荡器(LSI)作为时钟源,并提供了BCD码转换函数DEXTOHEX。主要函数包括RTC初始化、时间设置(SET_data/SET_DayTime)和时间读取(ReaDTRC)。注意若使用内部晶振,时间精度可能不如外部晶振准确。文中还包含了中断配置和错误处理机制,为嵌入式系统提供可靠的实时时钟解决方案。
2025-09-08 10:52:45
195
1
原创 复位,保存部分变量数据
【摘要】针对软件看门狗复位导致数据丢失的问题,提出一种SRAM存储解决方案。通过在特定内存地址(如0x20001FC0)定义变量并添加段属性,使看门狗复位时不初始化这些数据。该方法避免了Flash写入失败的风险,利用SRAM的断电保持特性,在芯片未断电情况下有效保存time_cnt、save_data等关键数据。相比于传统Flash存储方案,该技术更安全可靠,适用于需要保持复位前状态的应用场景。
2025-08-28 12:44:25
308
原创 K型热电偶电动势以及温度对照表
摘要:K型热电偶电动势与温度呈近似线性关系,但电动势较小(如0℃对应0mV,400℃对应16.397mV),需采用高精度ADC或放大电路进行信号处理。数据表明每5℃温度间隔对应约0.2mV的电动势增量,在750℃时达32.0417mV。该特性要求测量系统具备微伏级分辨率,才能实现准确温度检测。线性增长趋势为K型热电偶的标定和使用提供了便利,但需注意低温段信号微弱带来的检测挑战。
2025-07-15 17:40:25
2148
原创 vscode-keil开发找不到头文件
在VS Code中配置C/C++项目时,修改c_cpp_properties.json文件,在includePath中添加"${workspaceFolder}/**"路径,即可自动包含工作区目录下的所有头文件。这种配置方式简单有效,适用于多数C/C++项目开发场景。
2025-07-07 10:33:34
465
原创 WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
工程中定义函数但未调用会触发提示。这种提示通常由编译器或静态分析工具产生,旨在提醒开发者检查是否存在未被使用的冗余代码。它有助于优化代码结构,提升程序效率,同时可作为代码审查的参考。开发人员应重视这类提示,及时处理无用函数,保持代码整洁。这一机制体现了现代开发工具对代码质量的智能监控。
2025-06-26 16:30:10
421
1
原创 TP触摸 触摸IC-CST726
本文介绍了通过I2C接口实现CST816T触摸屏的驱动方法。作者在未找到原始IC资料的情况下,通过分析CST816T寄存器成功获取触摸坐标。主要步骤包括:1) 配置GPIO模拟I2C通信;2) 实现I2C读写函数;3) 定义触摸屏寄存器地址;4) 编写坐标读取函数。代码展示了完整的软件I2C实现方案,包括Start/Stop信号、字节读写、ACK响应等基本操作。实测表明该方法有效,可配合UGUI实现简单的触摸功能,如清屏和绘制红点。该方案为没有硬件I2C资源的系统提供了可行的替代方案。
2025-06-04 09:00:42
549
2
原创 手动移植UGUI
μGUI是一个轻量级嵌入式GUI模块,仅需2-3K RAM即可运行。移植时只需添加ugui.c和ugui.h两个文件,初始化时配置打点、画线、填充三个底层驱动函数。系统提供Window、Button、TextBox和Image等基础控件,可通过回调函数处理用户交互。移植示例展示了创建窗口、按钮及触摸处理流程:初始化后创建控件并设置属性,主循环调用UG_Update刷新显示,通过UG_TouchUpdate传递触摸坐标。该框架适合工业控制等简单界面需求,若要实现复杂效果需自行扩展控件。
2025-06-03 11:23:52
854
原创 手动移植FreeRTOS
本文记录了FreeRTOS移植过程的经验分享。首先需要获取FreeRTOS内核源码,保留核心文件和对应ARM架构的代码。移植时只需选择一种内存管理方案,然后配置FreeRTOSConfig.h文件。步骤包括:将源码文件添加到工程中,设置头文件路径,处理编译错误(如定义内存溢出处理函数),最后根据需求配置FreeRTOSConfig.h并创建测试任务验证。作者希望通过分享这些实用技巧获得同行的认可与支持。全文以实用为导向,重点介绍移植过程中的关键操作和常见问题解决方法。
2025-05-29 16:54:19
375
原创 Ubuntu ping网络没有问题,但是浏览器无法访问到网络
在Ubuntu系统中,刷新DNS缓存是解决网络访问问题的常见方法。对于Ubuntu 20.04及更高版本,可以使用sudo resolvectl flush-caches命令来清除DNS缓存。对于较旧版本如Ubuntu 18.04,可以使用sudo systemd-resolve --flush-caches命令。如果这些方法无效,可以尝试重启网络服务,如sudo systemctl restart systemd-networkd或sudo systemctl restart NetworkManager
2025-05-19 09:24:04
635
原创 QT6.8安装教程
建议从清华大学开源软件镜像站下载Qt在线安装程序,速度更快。访问镜像站后,根据操作系统选择合适的版本。若无账号可自行注册并填写信息。安装时,开发桌面应用选择第一个选项,移动应用选择第二个,或直接安装两者。安装完成后,创建项目并运行即可。
2025-05-12 13:58:46
704
1
原创 QT5.14安装以及新建基础项目
本文介绍了如何下载和安装Qt开发工具,并简要说明了安装过程中的关键步骤。首先,通过提供的网盘链接下载Qt安装包,然后按照提示进行安装,包括注册账号、选择安装路径和所需组件。建议根据开发需求选择合适的套件,如MinGW或MSVC。安装完成后,可以新建项目并选择编译套件。文章还提醒用户注意项目路径中不要包含中文字符,以避免可能的报错问题。
2025-05-12 10:56:38
832
原创 fatal: unable to access ‘https://source.denx.de/u-boot/u-boot.git/‘: Could not resolve proxy: http
git 尝试克隆仓库时无法解析代理服务器设置
2025-04-29 09:37:12
366
原创 KEIL软件error:出现Error: Flash Download failed - Could not load file错误可能原因
KEIL软件error:出现Error: Flash Download failed - Could not load file错误可能原因
2024-10-12 09:35:48
1276
2
ST7789V-SPEC-V1.3.pdf 显示技术ST7789V TFT控制器驱动芯片数据手册:240x320分辨率262K色彩屏接口与时序控制详解
2025-04-25
RC522能读卡不能写卡
2024-03-11
hal库串口中断只能发不能收
2023-12-15
关于#c语言#的问题:Linux 上直接传参给argv打印出来是乱码
2023-07-06
动态申请数组与赋值运行结果有问题
2023-06-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅