<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[就是菜啊！]]></title><description><![CDATA[一位又菜又爱玩的博主]]></description><link>https://blog.youkuaiyun.com/songjun007</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; songjun007]]></copyright><item><title><![CDATA[stm32F103RCT6+ModBus之RTU]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/146240560</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/146240560</guid><author>songjun007</author><pubDate>Thu, 13 Mar 2025 19:52:47 +0800</pubDate><description><![CDATA[线圈（地址范围0-63）：默认全部为0离散输入（地址范围0-63）：默认全部为0保持寄存器（地址范围0-31）：寄存器0 = 0x1234寄存器1 = 0x5678其余默认为0输入寄存器（地址范围0-31）：寄存器0 = 0xABCD寄存器1 = 0xEF01其余默认为0可以根据实际需求在modbus_rtu.c的Modbus_Init函数中修改这些默认值。]]></description><category></category></item><item><title><![CDATA[FreeRTOS系列---程序正常，但任务无法创建]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/146029122</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/146029122</guid><author>songjun007</author><pubDate>Tue, 04 Mar 2025 22:50:29 +0800</pubDate><description><![CDATA[代码中其他任务使用void *pvParameters，而UART_ReceiveTask使用void *argument。你使用了256字节的栈空间，这可能比其他任务大，当FreeRTOS的堆内存配置不足时，任务创建会失败。如果你的UART_ReceiveTask函数包含较复杂的本地变量或调用较深，256字节的栈可能不够用。configMINIMAL_STACK_SIZE可能设置得较小，而UART接收任务需要更多栈空间。实际创建了四个任务，但是在打印任务列表的时候，第四个任务始终没有出现；]]></description><category></category></item><item><title><![CDATA[FreeRTOS系列---线程间通信详解]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145924517</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145924517</guid><author>songjun007</author><pubDate>Fri, 28 Feb 2025 11:43:12 +0800</pubDate><description><![CDATA[为了帮助大家深入理解FreeRTOS的线程间通信（IPC）机制，将从以及五个维度进行系统化讲解。]]></description><category></category></item><item><title><![CDATA[FreeRTOS系列---内存管理详解]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145910602</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145910602</guid><author>songjun007</author><pubDate>Thu, 27 Feb 2025 18:27:55 +0800</pubDate><description><![CDATA[理解其底层机制（如heap_4的块合并算法）对于优化嵌入式系统至关重要。（heap_1 ~ heap_5），开发者可根据项目需求选择或自定义。计算实际需要大小: xWantedSize = xSize + heapSTRUCT_SIZE。的深度解析，结合源码、框架图及实际应用示例，帮助理解其底层机制。遍历空闲链表, 寻找首个 >=  xWantedSize的块。获取块头地址: puc -= heapSTRUCT_SIZE。计算块头地址puc -= heapSTRUCT_SIZE。调用vPortFree。]]></description><category></category></item><item><title><![CDATA[裸机系统与RTOS如何选择]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145862147</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145862147</guid><author>songjun007</author><pubDate>Tue, 25 Feb 2025 20:43:05 +0800</pubDate><description><![CDATA[根据项目复杂度、实时性需求、硬件资源综合选择。对于现代物联网设备（如ESP32、STM32F4），RTOS已成为主流选择，因其能有效管理Wi-Fi/BLE协议栈、传感器融合等复杂逻辑。的核心区别、应用场景对比及RTOS使用示例的详细解析。]]></description><category></category></item><item><title><![CDATA[FreeRTOS系列---事件组详解]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145861999</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145861999</guid><author>songjun007</author><pubDate>Tue, 25 Feb 2025 20:34:14 +0800</pubDate><description><![CDATA[四个维度，结合 FreeRTOS v10.4.3 源码及流程图，详细讲解事件组（Event Group）的实现原理和应用。FreeRTOS 事件组通过。在实际项目中，事件组常用于。等需要多条件协作的场景。]]></description><category></category></item><item><title><![CDATA[FreeRTOS系列---信号量详解]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145861829</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145861829</guid><author>songjun007</author><pubDate>Tue, 25 Feb 2025 20:25:18 +0800</pubDate><description><![CDATA[FreeRTOS 的信号量（包括二值信号量、计数信号量、互斥量）均基于队列实现，但在队列基础上做了特化处理。理解信号量的队列本质后，可以灵活选择同步机制，并在资源受限的嵌入式系统中高效管理任务协作。理解 FreeRTOS 的信号量（Semaphore）实现需要从。FreeRTOS 信号量的实现本质是。FreeRTOS 的信号量是通过。（在获取互斥量时触发）]]></description><category></category></item><item><title><![CDATA[FreeRTOS系列---队列详解]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145861662</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145861662</guid><author>songjun007</author><pubDate>Tue, 25 Feb 2025 20:20:15 +0800</pubDate><description><![CDATA[理解 FreeRTOS 的队列（Queue）实现需要从数据结构、操作接口和底层机制三个层面分析。队列是 FreeRTOS 中最重要的通信机制之一，支持任务间、任务与中断间的数据传递。队列的设计体现了 RTOS 的典型特征：高效的数据传递、确定性的阻塞唤醒机制、对中断上下文的特殊处理。理解其源码实现有助于在资源受限的嵌入式系统中合理使用队列，并解决复杂的同步问题。FreeRTOS 的队列实现核心是。]]></description><category></category></item><item><title><![CDATA[FreeRTOS系列---任务切换详解]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145835726</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145835726</guid><author>songjun007</author><pubDate>Mon, 24 Feb 2025 19:12:31 +0800</pubDate><description><![CDATA[理解 FreeRTOS 的任务切换原理需要深入其调度器（Scheduler）和硬件移植层（Port Layer）的实现。结合源码调试工具（如 OpenOCD 或 J-Link），可以更直观地观察切换过程。PendSV 是低优先级异常，确保所有中断处理完成后再切换任务。需要精确控制寄存器的保存/恢复顺序，且必须与硬件中断机制配合。该全局指针始终指向当前运行任务的 TCB，切换时会更新。：通过 PendSV 异常延迟切换请求，确保原子性。：通过任务栈实现上下文的无缝保存与恢复。FreeRTOS 的任务切换是。]]></description><category></category></item><item><title><![CDATA[FreeRTOS系列---软件定时器详解]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145810355</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145810355</guid><author>songjun007</author><pubDate>Sun, 23 Feb 2025 15:19:25 +0800</pubDate><description><![CDATA[FreeRTOS 的软件定时器（Software Timer）实现基于任务调度和队列机制，其核心设计围绕 守护任务（Timer Daemon Task） 和 命令队列（Timer Command Queue） 展开]]></description><category></category></item><item><title><![CDATA[函数指针和指针函数，傻傻分不清~]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/145785692</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/145785692</guid><author>songjun007</author><pubDate>Fri, 21 Feb 2025 21:15:19 +0800</pubDate><description><![CDATA[在嵌入式开发中，函数指针是实现动态行为的关键工具（如中断处理、状态机），而指针函数是资源管理的基础手段（如内存分配、硬件访问）。理解二者的差异需要结合具体硬件架构（如哈佛架构与冯诺依曼架构的区别）和编译器的具体实现。]]></description><category></category></item><item><title><![CDATA[使用RT-Thread Studio时遇到arm-none-eabi-g++: error: CreateProcess: No such file or directory问题，如何解决]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/124169896</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/124169896</guid><author>songjun007</author><pubDate>Thu, 14 Apr 2022 13:42:11 +0800</pubDate><description><![CDATA[首先，可以看看是否是资源文件不存在，检查完确认无误后，发现不是资源文件不存在，而是windows系统对于命令的长度有所限制，当自己项目中链接的文件数目过多时，就会出现命令超长，就会出现下面的问题。



解决方法：

解除Windows命令行长度的限制，在rt-thread studio中有这个功能选项，如下图所示：



点击项目，就能看见解除windows命令行的长度限制，再次编译程序就会通过！
...]]></description><category></category></item><item><title><![CDATA[TouchGFX软件包下载]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/120899098</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/120899098</guid><author>songjun007</author><pubDate>Fri, 22 Oct 2021 09:19:32 +0800</pubDate><description><![CDATA[4.18版本下载

4.18版本http://链接：https://pan.baidu.com/s/1mTHN4ooD201EqFV7iQ7Wsg 提取码：0t7h --来自百度网盘超级会员V6的分享

更新内容



新增加了视频控件，赶紧上手玩一玩吧！
]]></description><category></category></item><item><title><![CDATA[rust之结构体应用demo]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/120036595</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/120036595</guid><author>songjun007</author><pubDate>Wed, 01 Sep 2021 12:04:00 +0800</pubDate><description><![CDATA[1、结构体的简单应用

    应用程序主要用到了rust的结构体、枚举以及函数和match关键字；示例基于计算长方形的面积展开的，分为长方形创建，计算长方形面积，判断面积值是否合理等功能，下面我们就来看看代码实现。

2、结构体测试程序

    首先我们来看看长方形结构体的定义，具体定义如下图所示:


struct Rect {
    width: i32,        //宽
    height: i32,       //高
}


枚举类型主要是来表示长方形...]]></description><category></category></item><item><title><![CDATA[rtthread之UDP方式传输数据超时接收]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/119987087</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/119987087</guid><author>songjun007</author><pubDate>Sun, 29 Aug 2021 23:09:08 +0800</pubDate><description><![CDATA[1、简介UDP

UDP 是User Datagram Protocol的简称， 中文名是用户数据报协议，是OSI（Open System Interconnection，开放式系统互联） 参考模型中一种无连接的传输层协议，提供面向事务的简单不可靠信息传送服务，IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。

UDP是OSI参考模型中一种无连接的传输层协议，它主要用于不要求分组顺序到达的传输中，分组传输顺序的检查与排序由应用层完成[4]...]]></description><category></category></item><item><title><![CDATA[rust之结构体应用]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/119899235</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/119899235</guid><author>songjun007</author><pubDate>Tue, 24 Aug 2021 22:48:42 +0800</pubDate><description><![CDATA[目录

1、结构体简介

2、rust中的结构体

2.1、结构体创建

2.2、struct成员的调用

2.3、修改rust结构体成员变量值

2.4 结构体类型作为函数返回值

3、总结

1、结构体简介

    结构体是一种自定义的数据类型，它允许我们命名多个相关的值并将他们组成一个有机的结合体。学过C语言的小伙伴们应该对结构体很熟悉了吧！当然，要是没学过那也不要紧；学过面向对象的语言也是可以的；在面向对象的语言中；我们可以把“对象”的属性看做成结构体；这样就容易理解啦！

2、rus...]]></description><category></category></item><item><title><![CDATA[与Rust的第一次见面会]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/119812992</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/119812992</guid><author>songjun007</author><pubDate>Thu, 19 Aug 2021 23:27:41 +0800</pubDate><description><![CDATA[目录

1、引言  

2、Rust的安装

3、使用vscode进行rust开发

4、rust的编译与运行

4.1 rust的编译命令

4.2 rust的运行命令

5、demo的运行结果

1、引言  

   大家好！我是菜哥！今天呢，我想记录一下我的Rust学习之旅，首先呢，咱们先来介绍一下Rust；下面的介绍来自《极客时间》的陈天大佬：


Rust 集表达力、高性能、内存安全于一身，在 1.0 版本发布后不久，口碑就一路高飞猛进，从 16 年起，连续 6 年成为 St...]]></description><category></category></item><item><title><![CDATA[stm32在进行调试时；进入 LDR R0, =SystemInit卡死]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/119700628</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/119700628</guid><author>songjun007</author><pubDate>Sat, 14 Aug 2021 14:48:27 +0800</pubDate><description><![CDATA[目录

1、硬件环境：

2、问题疑惑：

3、问题分析

1、硬件环境：

STM32H750VB板子；仿真器DAP

2、问题疑惑：

  在项目调试的时候遇到这个问题；就是加了一条语句；结果代码就执行不了；于是开启仿真调试之旅，但是仿真时直接进入下图所示：



3、问题分析

   记得在上次遇到类似的问题；是在使用H750的串口打印输出时；程序直接卡死；并未运行；解决方案是由于“微库”没有勾选；于是试了一下；然后就这样解决了；有的小伙伴说是由于开启了硬件浮点计算导致的；但是我关闭了...]]></description><category></category></item><item><title><![CDATA[嵌入式设备上如何构建自己的数据库]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/119645345</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/119645345</guid><author>songjun007</author><pubDate>Thu, 12 Aug 2021 15:25:09 +0800</pubDate><description><![CDATA[大家来看看！这样的执行方案可行不？使用文件系统在嵌入式设备上面构建自己的数据库系统；功能不需要很多，只需要拥有数据库的基本操作即可；即：增删改查；那么下面的设计方案只是暂时性的！后面我会把实际的效果展示出来！






...]]></description><category></category></item><item><title><![CDATA[ART_PI与Touchgfx在原子7寸屏上相会]]></title><link>https://blog.youkuaiyun.com/songjun007/article/details/118947304</link><guid>https://blog.youkuaiyun.com/songjun007/article/details/118947304</guid><author>songjun007</author><pubDate>Wed, 21 Jul 2021 00:50:05 +0800</pubDate><description><![CDATA[目录

1、实验平台

1.1、软件环境

1.2、硬件环境

2、实验过程

2.1、创建ART_PI项目工程

2.2、屏幕参数修改

2.3、触摸驱动添加

3、总结

1、实验平台

1.1、软件环境

RT_thread Studio、Touchgfx Designer5.15、串口调试助手

1.2、硬件环境

ART_PI开发板、正点原子7寸屏v13(分辨率800*480)

2、实验过程

2.1、创建ART_PI项目工程

    创建项目工程，相必大家都很熟悉吧，就是创建一个R...]]></description><category></category></item></channel></rss>