<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_42831443的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/qq_42831443</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; qq_42831443]]></copyright><item><title><![CDATA[Qt专题之串口调试助手设计（手把手教程鞭辟入里，代码开源）]]></title><link>https://blog.csdn.net/qq_42831443/article/details/165125630</link><guid>https://blog.csdn.net/qq_42831443/article/details/165125630</guid><author>qq_42831443</author><pubDate>Mon, 14 Sep 2026 20:36:37 +0800</pubDate><description><![CDATA[本项目将实现串口助手的一些基本功能（适合新手学习），全文没有废话。备注：目前布局没有优化，仅提供学习使用，后续优化内容和要增加功能自己添加。开发环境：Qt Creator 4.12.2 &Win10。]]></description><category></category></item><item><title><![CDATA[Qt的常用类QList--序列数据管理]]></title><link>https://blog.csdn.net/qq_42831443/article/details/165306026</link><guid>https://blog.csdn.net/qq_42831443/article/details/165306026</guid><author>qq_42831443</author><pubDate>Mon, 14 Sep 2026 14:19:29 +0800</pubDate><description><![CDATA[因此可以采用下标来进行索引进行快速的访问。而QVector是Qt对所有数组的封装，它元素的存储位置彼此相邻，也就是说它是以数组的形式进行存储的，它的插入删除操作常常伴随着内存的移动，所以效率上并没有QList高。QlinkList我们可以把它当成一个链表，它以非连续的内存块进行保存数据，所以它不能使用下标进行访问，它更适合于数据的插入操作。通过list.at()函数和下标，它的区别就是通过下标的时候，QList会对它的数据进行一次拷贝，也就是内存的一次复制，所以我们通过下标这种方式效率不高。]]></description><category></category></item><item><title><![CDATA[STM32之自定义协议帧格式]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164883296</link><guid>https://blog.csdn.net/qq_42831443/article/details/164883296</guid><author>qq_42831443</author><pubDate>Sat, 12 Sep 2026 20:58:32 +0800</pubDate><description><![CDATA[虽然目前有很多成熟的协议（如Modbus、MQTT、HTTP、CANopen...）,但是嵌入式往往资源有限、功能定制化强，这时就需要自定义的协议，汇总一下原因主要有以下几种：1、系统资源受限；（标准协议太复杂，占内存大，单片机难实现，如HTTP、MQTT）2、功能需求独特；（需要传输特定数据，如传感器值、命令、状态等）3、速度和效率要求高；（通信简洁、响应迅速）4、硬件接口简单；（串口、485、IIC、SPI等通信接口不自带高级协议，需要自己封装）5、多设备配合工作。]]></description><category></category></item><item><title><![CDATA[2026/09/09 STM32F103复习（三）]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164755758</link><guid>https://blog.csdn.net/qq_42831443/article/details/164755758</guid><author>qq_42831443</author><pubDate>Wed, 09 Sep 2026 22:28:43 +0800</pubDate><description><![CDATA[BKP：备份寄存器 用于存储用户应用程序数据 VBAT切换供电。秒计数器转换成伦敦时间 北京事件时东八区即伦敦时间+8个小时。TAMPER引脚产生的侵入事件将所有寄存器内容清零（防拆）电源框图：模拟部分 数字部分（1.8V供电区域） 后备区域。独立看门狗IWDG 1.8V供电区 键寄存器。后备区域即STM32由VBAT 供电的部分。喂狗 不喂狗就复位 喂狗起始就是重置计数器。管理内部电源供电部分、监控电压 即PVD。GMT/UTC 闰秒机制。VBAT不支持5V供电。睡眠+串口发送+接收。]]></description><category></category></item><item><title><![CDATA[2026/09/08 STM32F103复习（二）]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164626064</link><guid>https://blog.csdn.net/qq_42831443/article/details/164626064</guid><author>qq_42831443</author><pubDate>Tue, 08 Sep 2026 22:28:34 +0800</pubDate><description><![CDATA[ADC初始化 CMD上电 DMA输出信号（DMA输出数据） 中断配置 控制校准函数 软件触发转换 获取软件开始给SWSTART位清零 getflagstatus判断是否转换结束 启用间断模式 规则组通道配置 ADC获取转换值（数据寄存器）Inject注入组。起始地址 数据宽度 地址自增 传输计数器 （自动重装器：决定转运模式 单次 连续）DMA触发控制（硬件（一般与外设有关） 软件 M2M）RCC（ADC） RCC（GPIO） RCCCLK（6分频）--12MHZ。指定地址读：先当前地址写再当前地址读。]]></description><category></category></item><item><title><![CDATA[2026/9/7 STM32F103复习（一）]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164470919</link><guid>https://blog.csdn.net/qq_42831443/article/details/164470919</guid><author>qq_42831443</author><pubDate>Mon, 07 Sep 2026 22:37:03 +0800</pubDate><description><![CDATA[连接好确认编译没有问题，点击发大镜，主窗口是C，上面是C转换的汇编，左边是寄存器组和标志位的信息，复位，全速运行，黄色箭头当前执行的位置，单步运行，跳出函数，深灰色区域设置断点。命令窗口，反汇编窗口、符号窗口（实时查看所有变量的值）、右键添加watch窗口、单步运行就可以看到变量的变化，外设窗口--可以选择某个外设的某个寄存器查看值。行列，先初始化，清屏函数，显示一个字符、显示字符串、显示（有符号）十进制数字（十六进制、二进制）初始化RCC、GPIO初始化（先定义，再填充结构体变量，最后初始化）。]]></description><category></category></item><item><title><![CDATA[2026/9/5 C复习笔记（一）]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164397208</link><guid>https://blog.csdn.net/qq_42831443/article/details/164397208</guid><author>qq_42831443</author><pubDate>Sun, 06 Sep 2026 14:14:48 +0800</pubDate><description><![CDATA[标识符是有标识符的构造规则，基本的原则是：标识符符只能由字母、数字和下划线组成，数字不可以出现在第一个位置上，C语言的关键字（有的地方叫他们保留字）不可以用作标识符。那样，就是变量的初始化，虽然C语言并没有强制要求所有的变量都在定义的地方初始化，但是所有的变量在第一次被使用（出现在赋值运算符的右边）之前应该被赋值一次。关系是静态的，而动作是动态的。2.编译：借助一个程序，就像一个翻译，把你的程序翻译成计算机能懂的语言--机器语言--写的程序，然后这个机器语言写的程序就能直接执行了。How to do?]]></description><category></category></item><item><title><![CDATA[2026/9/6 C复习笔记（二）]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164424462</link><guid>https://blog.csdn.net/qq_42831443/article/details/164424462</guid><author>qq_42831443</author><pubDate>Sun, 06 Sep 2026 14:14:02 +0800</pubDate><description><![CDATA[&lt;think&gt;我们只需要根据内容生成摘要。内容是对C语言中指针、数组、地址、二维数组等的讲解笔记。摘要要求≤150字。需要提炼核心：二维数组、取地址、指针变量、指针运算、const等。尽量简洁。 我写一个摘要。&lt;/think&gt;这是C语言指针与数组的笔记：二维数组的遍历与初始化；&amp;取变量地址，地址大小取决于编译器；指针保存地址，通过*访问目标；函数可传指针修改外部变量或返回状态；数组名即起始地址，参数可与指针等价；const限制指针或目标值；指针加减按类型偏移，支持比较和*p+]]></description><category></category></item><item><title><![CDATA[QT专题之串口编程 -上位机设计]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164142878</link><guid>https://blog.csdn.net/qq_42831443/article/details/164142878</guid><author>qq_42831443</author><pubDate>Fri, 28 Aug 2026 21:39:27 +0800</pubDate><description><![CDATA[像串口选择这里的QComboBox组件就不能像上面这样一个一个添加进去，不行！其实QT提供了一个类，可供扫描本机或者开发板上的可用串口，它会将串口信息储存到一个容器里面，遍历这个容器，就可以提取这些串口的信息，即：在头文件中添加QSerialPortInfo串口信息类。遍历有一个方法：foreach，循环添加串口信息，串口名字，一个参数var是变量，一个参数container是容器。串口信息类会扫描本机或者开发板上的串口，会返回一个串口信息类的容器，然后我们从这个容器里面读取串口信息。]]></description><category></category></item><item><title><![CDATA[STM32专题之怎么使用串口工具下载程序]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164096412</link><guid>https://blog.csdn.net/qq_42831443/article/details/164096412</guid><author>qq_42831443</author><pubDate>Wed, 26 Aug 2026 22:04:51 +0800</pubDate><description><![CDATA[目前我们使用的野火霸天虎的板子自带串口下载电路，所以配合上位机下载程序时可以不修改开发板的BOOT设置。ISP下载的方式与仿真器相比，只能下载程序，不能在线调试且下载速度慢。目前USB转串口芯片已经集成到板子上，所以我们想要使用串口要先安装USB转串口驱动。硬件平台：STM32F407ZGT6开发板如下其中1代表的就是USB转串口接口，2代表的是RXD/TXD 通过跳冒接PA9和PA19，连接图：3表示的是BOOT引脚，其中BOOT0和BOOT1默认接地。]]></description><category></category></item><item><title><![CDATA[STM32专题之MDK编译流程及文件类型精解]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164017933</link><guid>https://blog.csdn.net/qq_42831443/article/details/164017933</guid><author>qq_42831443</author><pubDate>Tue, 25 Aug 2026 22:25:32 +0800</pubDate><description><![CDATA[进入函数时向栈空间申请内存，给局部变量，退出时释放局部变量，即归还该内存空间。而使用。]]></description><category></category></item><item><title><![CDATA[STM32专题之STM32是怎么启动的？]]></title><link>https://blog.csdn.net/qq_42831443/article/details/163980326</link><guid>https://blog.csdn.net/qq_42831443/article/details/163980326</guid><author>qq_42831443</author><pubDate>Tue, 25 Aug 2026 22:19:02 +0800</pubDate><description><![CDATA[这里说明一下：向量表的地址是可以设置的，通过NVIC中的重定位寄存器来指出向量表的地址，复位后该寄存器的值为0。由此可知， BOOT0 为低电平时，内核复位后，从 0x08000000 读取到栈顶地址为 0x20000400，了解到子程序的栈空间范围，再从 0x08000004 读取到第一条指令的存储地址为 0x0800019d，于是跳转到该地址执行代码，即从 ResetHandler 开始运行，运行 SystemInit、 __main(包含分散加载代码)，最后跳转到 C 语言的 main 函数。]]></description><category></category></item><item><title><![CDATA[STM32专题之内部SRAM]]></title><link>https://blog.csdn.net/qq_42831443/article/details/164064790</link><guid>https://blog.csdn.net/qq_42831443/article/details/164064790</guid><author>qq_42831443</author><pubDate>Tue, 25 Aug 2026 21:05:20 +0800</pubDate><description><![CDATA[访问时，使用 UB# 或 LB# 线控制数据宽度，例如，当要访问宽度为 16 位的数据时，使用行地址线指出地址，然后把 UB# 和 LB# 线都设置为低电平，那么 I/O0-I/O15 线都有效，它们一起输出该地址的 16 位数据 (或者接收 16 位数据到该地址)；当要访问宽度为 8 位的数据时，使用行地址线指出地址，然后把 UB# 或 LB# 其中一个设置为低电平， I/O 会对应输出该地址的高 8 位和低 8 位数据，因此它们被称为数据掩码信号。OE# 和 WE# 可以控制读写使能，防止误操作。]]></description><category></category></item><item><title><![CDATA[STM32专题之内部FLASH详解]]></title><link>https://blog.csdn.net/qq_42831443/article/details/163982053</link><guid>https://blog.csdn.net/qq_42831443/article/details/163982053</guid><author>qq_42831443</author><pubDate>Sun, 23 Aug 2026 23:17:40 +0800</pubDate><description><![CDATA[从上面的代码可以看出加载空间和执行空间的基地址都是0x0800 0000，对应的正是内部Flash的起始地址，也就是说STM32的内部Flash就直接是执行空间，他们大小分别是0x00000e28和0x00000e14，执行空间ROM比较小的原因是因为部分RW-Data类型的变量被COPY到RAM空间了。这是由于FLASH里面存储的是应用程序，非常重要，防止误操作被修改，在芯片复位后默认会给FLASH上锁，上锁后是不允许设置FLASH的控制寄存器也不能修改FLASH内的内容。是用来存储应用程序/代码的。]]></description><category></category></item><item><title><![CDATA[STM32专题之flash简单区分]]></title><link>https://blog.csdn.net/qq_42831443/article/details/163977605</link><guid>https://blog.csdn.net/qq_42831443/article/details/163977605</guid><author>qq_42831443</author><pubDate>Sat, 22 Aug 2026 20:40:34 +0800</pubDate><description><![CDATA[我们主要看Flash，它的地址是由芯片厂商或者用户分配，STM32F407也给它内部的Flash会分配地址（这个过程叫存储器映射）。数据帧长度为8位，Flash支持模式0和模式3此处配置成模式0（即CPOL为低，CPHA为奇数边沿采样），NSS引脚为软件，波特率分频因子为2分配，分频后是42MHZ。HOLD 引脚用于暂停通讯，为低电平时，通讯暂停，数据输出引脚输出高阻抗状态，时钟和数据输入引脚无效，这里直接接电源，不使用通讯暂停功能。由此看出，这个1MB的Flash是片内的Flash。]]></description><category></category></item><item><title><![CDATA[STM32系列知识点--IAP串口升级]]></title><link>https://blog.csdn.net/qq_42831443/article/details/163772509</link><guid>https://blog.csdn.net/qq_42831443/article/details/163772509</guid><author>qq_42831443</author><pubDate>Sat, 22 Aug 2026 17:23:37 +0800</pubDate><description><![CDATA[什么叫Bootloader？（通俗来讲）它一个项目下面，有2个工程，一个工程叫App、一个工程叫Boot。Boot的Main函数跑了一些东西之后，会执行跳转，这个跳转代码好强，执行它就会跳到App工程里面。Boot的大概作用就是升级。BootLoader 是单片机上电后最先运行的一段程序。我们知道，ROM是断电数据不丢失的、只读的，RAM是断电后数据会丢失、可读可写的，但是仅仅了解到这些是不够用的！我们要深入去了解，在实际的代码中，ROM对应哪些部分？RAM对应哪些部分？]]></description><category></category></item><item><title><![CDATA[FreeRTOS重点[特殊字符]]]></title><link>https://blog.csdn.net/qq_42831443/article/details/163977232</link><guid>https://blog.csdn.net/qq_42831443/article/details/163977232</guid><author>qq_42831443</author><pubDate>Sat, 22 Aug 2026 17:18:57 +0800</pubDate><description><![CDATA[1、任务2、阻塞挂起3、延时4、调度器。]]></description><category></category></item><item><title><![CDATA[STM32重点[特殊字符]]]></title><link>https://blog.csdn.net/qq_42831443/article/details/163977204</link><guid>https://blog.csdn.net/qq_42831443/article/details/163977204</guid><author>qq_42831443</author><pubDate>Sat, 22 Aug 2026 17:17:24 +0800</pubDate><description><![CDATA[1、GPIO2、中断3、NVIC4、串口。]]></description><category></category></item><item><title><![CDATA[重要⚠️重点梗概]]></title><link>https://blog.csdn.net/qq_42831443/article/details/163977135</link><guid>https://blog.csdn.net/qq_42831443/article/details/163977135</guid><author>qq_42831443</author><pubDate>Sat, 22 Aug 2026 17:14:28 +0800</pubDate><description><![CDATA[1、C语言基础2、指针3、结构体4、位操作。]]></description><category></category></item><item><title><![CDATA[单词汇总（一）]]></title><link>https://blog.csdn.net/qq_42831443/article/details/163951990</link><guid>https://blog.csdn.net/qq_42831443/article/details/163951990</guid><author>qq_42831443</author><pubDate>Fri, 21 Aug 2026 17:54:04 +0800</pubDate><description><![CDATA[1.Embedded System 嵌入式系统。]]></description><category></category></item></channel></rss>