<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_73391589的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_73391589</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_73391589]]></copyright><item><title><![CDATA[齐次变换矩阵运算-逆矩阵]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/155856871</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/155856871</guid><author>qq_73391589</author><pubDate>Fri, 12 Dec 2025 15:16:43 +0800</pubDate><description><![CDATA[例子，]]></description><category></category></item><item><title><![CDATA[Stm32 驱动ADC（HAL库）]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/149948984</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/149948984</guid><author>qq_73391589</author><pubDate>Wed, 06 Aug 2025 07:30:00 +0800</pubDate><description><![CDATA[摘要：本文介绍了STM32中ADC外设的关键配置参数及其应用场景。详细讲解了时钟分频器、分辨率、数据对齐等基础参数对采样精度的影响，重点分析了扫描模式、连续转换和间断转换三种工作模式的配置方法及适用场景。同时探讨了外部触发源的选择，并提供了单通道普通模式、ADC+DMA连续采集、多通道扫描模式等典型应用案例的工程实现方案，为传感器数据采集提供了实用的配置参考。]]></description><category></category></item><item><title><![CDATA[Flash的读取和写入（操作篇）]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/149947628</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/149947628</guid><author>qq_73391589</author><pubDate>Wed, 06 Aug 2025 07:30:00 +0800</pubDate><description><![CDATA[摘要：本文介绍了STM32F103C8T6芯片的Flash读写操作要点。写入前需先解锁，擦除时需配置起始地址和页数，并以16/32位为单位写入，不足位数会自动补0。读取可使用memcpy批量复制数据。文中通过结构体示例演示了Flash操作流程，包括擦除检查、写入时的对齐处理和小端序存储特性，最后通过UART打印验证数据一致性。特别提醒操作时要注意地址边界，避免越界访问，并强调完成操作后必须重新上锁。]]></description><category></category></item><item><title><![CDATA[STM32F1 Flash的操作]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/149789504</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/149789504</guid><author>qq_73391589</author><pubDate>Wed, 30 Jul 2025 23:39:08 +0800</pubDate><description><![CDATA[本文介绍了单片机中Flash存储的基本原理和操作方法。Flash是一种非易失性存储技术，STM32F103C8T6分配64KB空间，最小擦除单位为1KB。其掉电不丢失特性适合存储配置参数、历史数据等。操作前需解锁，支持8/16/32位读写，但要注意：1）避开代码段空间；2）以1KB为单位分配；3）遵循最低操作字节数限制。典型应用场景包括WiFi模块配置存储、传感器参数保存等需要持久化数据的场合。操作时需先擦除再写入，并建议从存储空间末尾开始分配以避免冲突。]]></description><category></category></item><item><title><![CDATA[Modbus协议]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/149762485</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/149762485</guid><author>qq_73391589</author><pubDate>Wed, 30 Jul 2025 01:57:50 +0800</pubDate><description><![CDATA[Modbus是一种主从式串行通信协议，支持RTU（二进制）、ASCII（文本）和TCP/IP（以太网）三种传输方式。协议支持多种功能指令，包括读取线圈/离散输入/保持/输入寄存器（01-04）和写入单个/多个线圈/保持寄存器（05/06/15/16）。寄存器分为四类：可读写的线圈寄存器（bit）、只读的离散输入寄存器（bit）、可读写的保持寄存器（16bit）和只读的输入寄存器（16bit）。开发时需区分主机（负责请求）和从机（负责响应）角色，从机需合理设计寄存器地址，并考虑将需持久化的参数存储在非易失性存]]></description><category></category></item><item><title><![CDATA[C语言：数组与指针]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/149470806</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/149470806</guid><author>qq_73391589</author><pubDate>Sat, 19 Jul 2025 21:31:00 +0800</pubDate><description><![CDATA[本文通过C语言代码示例探讨了字符串的不同存储方式及其特性。代码展示了三种字符串定义方式：指针指向常量区、不定长数组和定长数组，并比较了它们在内存中的存储位置（常量区/栈区/全局区）和可修改性。随后演示了三种返回字符串的函数实现方式：返回常量字符串（不可修改）、动态内存分配（可修改）和静态数组（可修改）。特别强调了返回局部变量指针的危险性，以及不同存储方式对字符串修改权限的影响。代码注释详细解释了每种方法的内存特点和适用场景。]]></description><category></category></item><item><title><![CDATA[C语言：从程序上深入理解二维数组]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/149462794</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/149462794</guid><author>qq_73391589</author><pubDate>Sat, 19 Jul 2025 12:17:22 +0800</pubDate><description><![CDATA[这段代码很好地演示了二维数组的内存布局和指针操作，但要注意在实际编程中应避免越界访问，即使它可能不会立即导致程序崩溃。]]></description><category></category></item><item><title><![CDATA[FreeRTOS系统 移植至STM32F4]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/147917465</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/147917465</guid><author>qq_73391589</author><pubDate>Tue, 13 May 2025 10:24:35 +0800</pubDate><description><![CDATA[FreeRTOS是一款专为嵌入式设备设计的开源实时操作系统，以轻量化、高可移植性和实时多任务调度为核心优势，适用于资源受限的微控制器（如ARM Cortex-M、RISC-V）。其内核支持抢占式任务调度、任务间通信（队列、信号量）及动态内存管理，通过Tickless模式优化功耗，广泛应用于物联网终端、工业控制和汽车电子等领域。下载好后解压可以看到如下内容Demo:官方给的工程历程Source: 文件夹里面包含的是FreeRTOS内核的源代码，我们移植FreeRTOS的时候就需要这部分源代码。]]></description><category></category></item><item><title><![CDATA[can总线通信协议]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/147629641</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/147629641</guid><author>qq_73391589</author><pubDate>Wed, 30 Apr 2025 12:46:55 +0800</pubDate><description><![CDATA[控制器局域网（Controller Area Network，CAN）是一种广泛应用于实时通信的串行总线协议，尤其在汽车电子和工业自动化领域。CAN通信协议是异步、半双工，串行通信协议。串行：数据按位发送半双工：可双向通信，但不能同时异步：无共享同步的时钟，依赖数据帧同步1.核心特点：多主结构：所有节点均可主动发送数据，通过仲裁机制避免冲突。非破坏性仲裁: 通过标识符（ID）优先级竞争总线使用权，低优先级节点主动退出发送高可靠性：错误检测：包含CRC校验、帧检查、ACK确认等机制。]]></description><category></category></item><item><title><![CDATA[SPI通信协议（STM32）]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/147529382</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/147529382</guid><author>qq_73391589</author><pubDate>Sat, 26 Apr 2025 11:36:38 +0800</pubDate><description><![CDATA[SPI（Serial Peripheral Interface）是一种同步、全双工、串行通信协议，广泛用于短距离芯片间通信，如微控制器与外设（传感器、存储器等）的连接。SPI跟iiC一样，同样是一主多从模式全双工：支持同时发送和接收数据。同步：有共享的时钟信号串行：双向数据串行发送和接收线，MOSIMISO1四线制：MOSI：主设备发送数据从设备接收数据MISO：从设备发送数据主设备接收数据SCLK：时钟信号线，由主设备产生SS/CS:从设备片选信号线。]]></description><category></category></item><item><title><![CDATA[IIC通信协议（STM32）]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/147520281</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/147520281</guid><author>qq_73391589</author><pubDate>Sat, 26 Apr 2025 02:00:00 +0800</pubDate><description><![CDATA[IIC（II（Inter-Integrated Circuit，I²C））是一种广泛使用的同步、半双工、串行通信协议，由飞利浦公司开发，主要特点是短距离，低速设备见得通信。支持多主多从架构，通过地址机制管理设备。串行：双向数据串行发送，SDA同步步：有共享的时钟信号，SCL半双工：支持两台设备和多台设备之间的相互通讯，不支持同时收发数据SDA:双向传输数据线SCL:产生时序的时钟线。]]></description><category></category></item><item><title><![CDATA[USART串口通信协议（STM32）]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/147517486</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/147517486</guid><author>qq_73391589</author><pubDate>Fri, 25 Apr 2025 17:27:50 +0800</pubDate><description><![CDATA[UART:（Universal Asynchronous Receiver/Transmitter，通用异步收发器），异步、串行、全双工通信协议串行：数据串行发送异步：无共享的时钟信号全双工：支持同时收发数据点对点短距离通信：通常用于两个短距离的设备之间。]]></description><category></category></item><item><title><![CDATA[树莓派 ubuntu镜像备份（压缩裁剪法）]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/147154524</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/147154524</guid><author>qq_73391589</author><pubDate>Fri, 11 Apr 2025 21:48:03 +0800</pubDate><description><![CDATA[镜像压缩存储卡：SD（需要这里我用64G卡，需要>=64 SD卡）& U盘（需要>=64G），为什么需要>=64,备份原理是全盘复制成镜像然后再裁剪未使用的空间。需要镜像的目标源：SD卡（树莓派系统文件SD卡，我用的64G的）将pishrink.sh脚本移动至/usr/local/bin。如果你想要镜像小一点的话，输入下面的指令进行裁剪即可。注意，下面就是你需要挂载的存储设备（sda）你可以输入ls /dev/sda*进行查询。输入再终端输入，查询我们插入卡的设备号。输入下面的git命令进行下载。]]></description><category></category></item><item><title><![CDATA[ROS usb_cam功能包安装问题]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/147049343</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/147049343</guid><author>qq_73391589</author><pubDate>Mon, 07 Apr 2025 17:54:04 +0800</pubDate><description><![CDATA[如果不下它编译好的二进制功能包，去官网载下来usb_cam功能包，一直出现编译异常，很奇怪。在安装usb_cam是一直出现如下问题，我以为是网络的问题，挂了梯子还是如此。操作系统：unbuntu 20.04。最后再重新运行这句指令，即可完成安转。ROS版本：noetic。于是我想起了切换ros源。采用设备：树莓派4B。]]></description><category></category></item><item><title><![CDATA[linux环境变量]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/146463760</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/146463760</guid><author>qq_73391589</author><pubDate>Sun, 23 Mar 2025 22:44:05 +0800</pubDate><description><![CDATA[profile：如果 .bash_profile 和 .bash_login 都不存在，则会尝试加载此文件。（3）.进程级：主要是在进程中通过setenv函数中设计环境变量，这个环境变量仅对该进程有效，进程结束，进程所设计环境生命周期也结束。文件中设置一些全局的环境变量和启动脚本，而在.bashrc 文件中设置一些特定于 Bash 的配置和个人设置。.bash_profile：这是在登录时加载的主要文件。通常情况下，用户可以在.bash_profile、.bash_login 或 .profile。]]></description><category></category></item><item><title><![CDATA[ubuntu启动找不到网卡]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/146463624</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/146463624</guid><author>qq_73391589</author><pubDate>Sun, 23 Mar 2025 22:33:17 +0800</pubDate><description><![CDATA[Ubuntu下方设备连接显示绿色，正常，但是很奇怪，ubuntu启动后，确未扫描出来，问题：当ubuntu启动找不到网卡，但是ubuntu下方显示网络连接正常，如下图，输入ipconfig也查询不到网卡。解决：（重启网络管理服务）执行下面的指令进行重启，]]></description><category></category></item><item><title><![CDATA[LINUX 实现socket与多线程结合与多个TCP client实现双向通信]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/144807006</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/144807006</guid><author>qq_73391589</author><pubDate>Sun, 29 Dec 2024 17:32:12 +0800</pubDate><description><![CDATA[上一节中，我们编写了socket单播1v1的双向通讯，但socket本身可以是1v多的，而我们的思路主要是通过主线程管理连接socket,并创建多线线程对单个连接进行单独处理，这样我们实现了多个socket连接双向通讯问题。socket 在创建线程时会将参数client_sock（accept返回的id）传入线程，在线程中会对malloc申请的空间进行释放。1.server.c 主线处理连接，创建线程与对应客服端id进行双向通信。3.client_2.c 发送并接收(其实与client_1.c一样的)]]></description><category></category></item><item><title><![CDATA[Linux socket实现双向通信]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/144771190</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/144771190</guid><author>qq_73391589</author><pubDate>Fri, 27 Dec 2024 16:01:24 +0800</pubDate><description><![CDATA[1.实现socket的server和client之间的相互通信(1s相互通讯一次)2.客服端断开自动重连。此次历程代码主要功能。]]></description><category></category></item><item><title><![CDATA[ROS1 roscore及其他相关指令出现报错]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/144616155</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/144616155</guid><author>qq_73391589</author><pubDate>Fri, 20 Dec 2024 17:37:48 +0800</pubDate><description><![CDATA[环境隔离，这个需要自己去研究，这里只更改python3版本的指向，如下。相关指令，今天运行时却发现了错误，很奇怪，我使用。时，居然报错，似乎还是语法上的错误，包括使用。我去查看我是否安装，发现我已经装了该环境。因为在开发过程中，我一直好几天未使用过。去查看的时候，却未显示没有该模块。接下来运行roscore,正常啦。版本，前两天装一些包时更新了。使用下面这个指令进行修改，写的，需要改变环境指向。]]></description><category></category></item><item><title><![CDATA[使用ESP32-CAM拍摄图片并上传至FTP服务器]]></title><link>https://blog.youkuaiyun.com/qq_73391589/article/details/143873733</link><guid>https://blog.youkuaiyun.com/qq_73391589/article/details/143873733</guid><author>qq_73391589</author><pubDate>Tue, 19 Nov 2024 10:36:21 +0800</pubDate><description><![CDATA[代码可灵活的实现很多功能，例如你想要在某时间段拍摄几张图片，通过网络通讯协议去实现，例如Socket,MQTT、HTTP等，发送你想要拍摄一张图片，如何命名等，同时也可以通过板子之间的通讯协议去实现，例如采样Arduino、stm32与ESP32-CAM通过串口通讯协议实现图片拍摄和上传控制，也可以通过引脚去控制，使用ESP32-cam实时监测某个引脚，检测到低电平时，图片拍摄并上传，这个代码再开发还是挺灵活的，大家多交流，有问题评论区私信我，见即回。]]></description><category></category></item></channel></rss>