- 博客(401)
- 资源 (1)
- 收藏
- 关注
原创 【STM32】SPI通讯协议入门解析
本文详细介绍了SPI(串行外设接口)协议及其在STM32中的应用。主要内容包括SPI协议层(四种工作模式、起始/终止条件)、STM32的SPI外设结构(通讯引脚、时钟/数据控制逻辑)以及相关库函数(初始化结构体、数据收发函数等)。SPI作为全双工同步总线,采用主从架构和片选信号机制,支持最高36Mbps通信速率。文章还阐述了STM32中SPI的配置方法,包括工作模式选择、时钟极性和相位设置等关键参数,为开发者提供了详细的SPI接口使用指南。
2025-11-15 22:15:31
1017
1
原创 非易失性存储器·W25Q64使用手册解读
本文介绍了W25Qxx系列NorFlash存储器的技术特性与应用方法。阐述了W25Q64控制逻辑中的状态寄存器机制和存储逻辑的分区管理(页/扇区/块);4. 核心指令:重点介绍了写使能(06h)、写禁止(04h)、读写状态寄存器(05h/01h)和读数据(03h)等关键指令的使用方法。
2025-11-15 22:14:52
1037
原创 【STM32】I2C协议使用浅析·硬件I2C代码编写
本文详细介绍了STM32的I2C总线接口,包括其物理层、协议层和硬件实现。主要内容涵盖I2C的基本特性(两根通信线SCL和SDA、同步半双工通信、支持多设备挂载)、物理层连接方式(开漏输出模式、上拉电阻的选取)、协议层组成(起始/终止信号、字节收发流程)、以及STM32的I2C硬件架构(时钟控制、数据收发逻辑等)。文章还详细解析了I2C的库函数配置方法,包括初始化结构体参数设置,并提供了完整的I2C引脚初始化和模式配置代码示例,最后给出了基于STM32的硬件I2C实现工程下载链接。
2025-11-12 05:00:00
844
1
原创 【STM32】轻松搞懂推挽和开漏输出怎么用
本文详细解析了STM32 GPIO的推挽输出和开漏输出模式。通过分析MOS管开关状态,解释了推挽输出如何通过交替导通P-MOS和N-MOS实现电流"推挽",而开漏输出则保持P-MOS关闭。重点阐述了开漏输出的电平匹配特性,可通过外接电源实现不同电压芯片间的控制,并支持线与逻辑。最后对比了普通GPIO与复用功能模式的差异,指出复用模式下输出信号直接来自片上外设。
2025-11-10 23:00:00
1807
原创 【STM32】DMA超详细解析·入门级教程
本文介绍了STM32中DMA(直接存储器访问)的基本原理及其在USART数据传输中的应用,概述了DMA的功能特点,讲解了DMA的初始化流程,逐步讲解代码构成,内含源码可直接移植。
2025-11-10 06:00:00
2779
原创 STM32外设面试速通:UART、I2C、SPI、DMA、RAM/FLASH与ADC/DAC
文章系统性地梳理了嵌入式系统中最为关键的几种串行通信协议和核心外设/存储器(UART, I2C, SPI, DMA, ADC/DAC, RAM/FLASH),重点阐述了它们的工作原理、特性,尤其是它们之间的区别与联系。
2025-10-27 20:33:41
1081
4
原创 【Linux应用开发·入门指南】零基础学 Linux 进程控制·五万字入门指南
本文从程序与进程的概念、组成、状态讲起,逐步深入进程控制核心:用 system、fork/vfork、execve 实现进程启动,借 wait/waitpid 处理进程等待,再详解 UDS、管道、共享内存等进程通信方式,附 System V 与 POSIX 两种 IPC 实现及 perror、环境变量等拓展,帮你系统掌握进程控制全流程。
2025-10-27 06:00:00
2978
2
原创 Linux 进程面试考点:进程状态、通信方式、信号量等关键问题速记
聚焦 Linux 进程核心知识,从并发、同步、异步等基础概念,到父 / 子进程关系、孤儿 / 僵尸 / 守护进程定义,再到进程五状态转换、7 种通信方式及信号量原理,还拆解 PCB 包含的核心信息。内容覆盖进程管理全流程,帮你理清进程运行逻辑,不管是入门学习还是巩固基础,都能系统掌握 Linux 进程关键知识点。
2025-10-26 14:00:00
978
原创 新手必看:C++10 组核心概念通俗解析(含指针、内存、绑定机制)
聚焦 C++10 组核心易混概念,从 new 与 malloc 的内存管理差异、野指针与悬挂指针的风险区别,到静态 / 动态绑定的实现逻辑、左值与右值的使用场景,再到 struct 与 class 的访问控制差异,搭配实例拆解原理。不管是理解指针类型、内存机制,还是掌握面向对象特性,都能帮你理清关键差异,夯实 C++ 基础。
2025-10-26 09:20:02
552
原创 搞定 C 语言核心概念:10 大高频对比
聚焦 C 语言 10 组核心易混概念,从全局 / 局部变量、#include<> 与 "" 的用法差异,到结构体 / 共用体、堆 / 栈的内存区别,再到 malloc/calloc、strcpy/memcpy 的实战运用,搭配代码示例拆解原理,帮你理清变量、指针、内存、数据结构等关键知识点,夯实 C 语言基础。
2025-10-25 17:30:12
901
原创 【Linux】一文掌握嵌入式 Linux 进程间通信(IPC):原理拆解 + 函数实战
本文系统介绍了Linux系统中常用的进程间通信(IPC)机制,包括Unix Domain Socket、管道(无名/有名)、共享内存、消息队列和信号量等。文章对比分析了各种IPC机制的特点、适用场景及性能差异,详细讲解了System V和POSIX两种标准下共享内存与消息队列的具体实现方法,并提供了相关API的使用示例和代码片段。此外,还介绍了信号处理的基本概念和实现方式,为开发者选择适合的进程间通信方案提供了全面参考。
2025-10-25 09:36:58
1523
原创 【Linux】小白也能懂的嵌入式 Linux 消息队列函数:基础概念与用法
消息队列是Linux系统中重要的进程间通信机制,克服了信号和管道的局限性。文章介绍了两种消息队列标准:SystemV和POSIX。SystemV消息队列通过msgget()创建/获取队列,msgsnd()发送消息,msgrcv()接收消息,msgctl()控制队列。POSIX消息队列则使用mq_open()、mq_timedsend()、mq_timedreceive()等函数。消息队列具有异步通信、消息边界、优先级、内核持久性等特点,适用于生产者-消费者模型。
2025-10-24 22:00:00
595
1
原创 进程间通信(IPC)简介
本文概述了UNIX/Linux系统中的进程间通信(IPC)机制,主要包括:Unix Domain Socket(UDS)、管道(无名/有名)、共享内存、消息队列和信号量。UDS支持高效本机通信;管道分无名(父子进程间)和有名(不相关进程间);共享内存性能最高但需同步;消息队列支持异步通信;信号量用于进程同步。文章还对比了SystemV IPC和POSIX IPC标准,指出后者更现代标准化。这些IPC机制各有特点,应根据应用场景选择合适方式。
2025-10-24 06:30:00
946
1
原创 【Linux】一文吃透嵌入式 Linux 共享内存:原理、优化与避坑指南
摘要:本文介绍了嵌入式Linux系统中两种共享内存实现方式——System V IPC和POSIX IPC。System V IPC通过shmget()创建、shmat()附加、shmdt()分离和shmctl()删除共享内存;POSIX IPC则使用shm_open()创建、ftruncate()设置大小、mmap()映射和shm_unlink()删除。文章详细说明了各函数的使用方法、参数含义和示例代码,并对比了两种方式的适用场景,为开发高效的进程间通信提供了实用指导。
2025-10-23 23:00:00
857
1
原创 【Linux】exec族函数·execve详解
本文介绍了Linux中的exec函数族,重点解析了execve()系统调用及其封装函数的使用方法。文章首先概述了exec函数族的功能,即替换当前进程映像为新程序而不创建新进程。随后通过具体示例演示了如何用execve()执行ls命令,并详细讲解了环境变量的配置方法。文章还展示了程序间的跳转实现,通过execve传递参数并验证进程ID不变的特性。最后,作者结合fork()函数,展示了如何创建子进程后使用execve执行新程序。
2025-10-23 06:00:00
792
原创 【Linux】fork函数详解
本文介绍了Linux系统中fork函数及其相关应用。fork函数用于创建子进程,父进程返回子进程PID,子进程返回0。文章详细讲解了fork的使用方法、父子进程资源分配特点(数据段独立,代码段共享),并通过示例代码演示了进程并发执行和全局变量的独立性。同时介绍了vfork函数与fork的区别,包括内存共享和执行顺序限制。最后通过文件描述符复制的实例,阐述了子进程如何继承父进程打开的文件,以及引用计数机制在文件关闭中的作用。文章还涉及了waitpid函数防止孤儿进程产生的方法,以及进程ID获取等相关系统调用。
2025-10-22 23:00:00
1415
原创 STM32F1之内部FLASH存储
STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程。类型起始地址存储器用途ROM程序存储器Flash存储C语言编译后的程序代码系统存储器存储C语言编译后的程序代码选项字节存储一些独立于程序代码的配置参数RAM运行内存SRAM存储运行过程中的临时变量运行内存SRAM存储各个外设的配置参数内核外设寄存器存储内核各个外设的配置参数。
2025-10-22 06:00:00
830
原创 【Linux应用开发·入门指南】详解文件IO以及文件描述符的使用
文件 IO 是嵌入式系统中应用程序与硬件设备、存储介质交互的核心机制,基于 “一切皆文件” 的设计理念,本文详细介绍了标准IO(fopen(6种模式)、fclose、fputc(单字节)、fputs(字符串)、fprintf(格式化)、fgetc(单字节)、fgets(字符串)、fscanf(格式化))和系统IO(open(含权限掩码umask)、read/write(需处理实际读写字节)、close)的使用
2025-10-21 22:00:00
1043
原创 Linux进程控制介绍
本文系统介绍了操作系统中进程管理的核心概念。首先定义了进程是动态执行的程序实例,包含代码、资源和状态,与静态程序有本质区别。然后详细阐述了进程控制模块(PCB)作为内核核心组件的作用,重点分析了Linux的task_struct结构。接着说明了进程创建过程、状态转换(运行态、睡眠态、停止态等)以及调度机制,包括FCFS、SJF、RR等经典算法和Linux采用的CFS公平调度器。全文从进程定义到生命周期管理,构建了完整的进程知识体系框架,为理解操作系统并发机制提供了理论基础。
2025-10-21 06:00:00
611
原创 【PCB电路设计】常见元器件简介(电阻、电容、电感、二极管、三极管以及场效应管)
本文系统介绍了电子电路中常见元器件的基本特性。电阻部分详解了限流、分压作用及色环读值方法;电容讲解了容值计算和极性识别;电感阐述了"通直流阻交流"特性;二极管重点分析了单向导电原理及各类二极管特点;三极管解释了NPN/PNP结构及放大、截止、饱和三种工作状态;场效应管则对比了三极管特性。全文通过水龙头等生活化比喻,配以计算公式和图表,深入浅出地解析了各类电子元器件的核心原理与应用场景。
2025-10-07 22:30:00
2795
1
原创 【Linux应用开发·入门指南】如何在Linux上安装VScode、gcc编译流程以及如何进行静态/动态链接的打包使用·详细步骤演示
本文系统介绍了Linux下C语言开发环境的搭建与使用。解析了GCC、glibc和GNUC的关系,详细演示了在Linux上安装GCC和VSCode的步骤,包括VSCode的汉化和C语言开发环境配置。重点讲解了GCC的完整编译流程(预处理→编译→汇编→链接),对比分析了静态链接和动态链接的区别与实现方法,并提供了动态库的打包和使用方案。
2025-09-30 05:00:00
1502
原创 Linux命令行以及PATH环境变量配置
本文介绍了Linux命令行基础及PATH环境变量的设置方法。首先讲解命令行基本结构,包括用户提示符、命令格式等。重点阐述了PATH环境变量的作用和使用场景:通过临时设置(export)、用户级永久设置(~/.bashrc)和系统级永久设置(/etc/environment)三种方式添加路径。以hello程序为例,演示了如何让系统识别自定义命令,并对比了不同设置方法的适用范围和效果。文章还提供了Linux命令和文件权限操作的扩展学习资源。
2025-09-29 04:00:00
736
原创 MQTT协议快速入门·超详细MQTT协议解析
MQTT是一种基于发布/订阅模式的轻量级物联网通信协议,构建于TCP/IP之上。其核心组件包括客户端(发布/订阅设备)和Broker(消息路由中心),通过主题层级(如sensor/temperature)实现消息路由,支持+/#通配符进行灵活订阅。
2025-08-28 23:52:52
1689
3
原创 在Windows环境下通过EMQX搭建属于自己的MQTT服务器(详细搭建步骤并通过MQTTX验证)
本文介绍了MQTT协议及其核心组件(客户端、服务端、主题、QoS),重点演示了EMQX服务器的部署步骤和MQTTX客户端的连接测试方法,一步步图文介绍帮助你在Windows环境下通过EMQX搭建属于自己的MQTT服务器。
2025-08-28 06:00:00
1945
1
原创 ESP32入门开发·SmartConfig实现配网功能
文章详细介绍了esp32-s3通过SmartConfig使用手机APP软件EspTouch实现配网功能,内含源码可直接移植使用。
2025-08-26 06:00:00
7306
原创 ESP32入门开发·使用STA模式连接WIFI(过程详解,源码可直接移植)
esp32-s3完成简单的配网功能,通过STA模式连接wifi,获取IP,含详细讲解过程,可直接移植使用。
2025-08-26 05:00:00
1502
原创 ESP32入门开发·三万字详解LEDC产生PWM信号实现呼吸灯效果(内含源码可直接移植)
详细示例逐步解析及演示,内含源码可直接移植,主要通过ESP32-S3的LEDC的API函数实现软件PWM控制LED灯亮度,以及通过硬件PWM实现呼吸灯的效果,最好对FreeRTOS的事件组有一定程度的了解。
2025-08-17 07:00:00
1235
原创 ESP32入门开发·通用硬件定时器 (GPTimer)
本文介绍了ESP32-S3通用定时器的架构与配置方法。ESP32-S3包含两个定时器组,每个组有两个通用定时器,具有16位预分频器和54位可自动重载计数器。定时器支持多种功能,包括时钟分频、计数方向设置、警报触发等。文章详细讲解了定时器的三大部分:16位预分频器与时钟选择器、54位时基计数器以及警报器的工作原理。最后通过LED闪烁的实例,演示了如何配置定时器周期性触发警报:初始化GPIO、创建1MHz定时器、设置1秒警报周期,并在回调函数中实现LED电平翻转。完整代码展示了从定时器初始化到事件处理的完整流程
2025-08-14 23:00:00
1170
原创 ESP32入门开发·外部中断·点击按键实现电平翻转
本文介绍了ESP32-S3的按键消抖和中断处理技术。主要内容包括:1) 按键消抖方法,分为硬件消抖(RC电路)和软件消抖(延时法、计数法、状态机法);2) 中断机制详解,包括中断优先级、嵌套和触发方式;3) ESP32-S3的中断分配特点,支持7级优先级和中断共享;4) 实际代码实现,通过GPIO配置实现按键控制LED,结合硬件消抖和软件延时消抖优化响应。文章提供了完整的初始化配置、中断服务函数和消抖处理代码,帮助开发者理解ESP32-S3的中断系统和按键处理最佳实践。
2025-08-14 06:00:00
1098
原创 ESP32入门开发·VScode空白项目搭建·点亮一颗LED灯
本文介绍了ESP32开发环境的搭建与基础项目创建流程。主要内容包括:1) Windows平台下ESP-IDF开发环境配置;2) 使用VSCode创建ESP32-S3空白项目的方法;3) GPIO驱动开发详解,涵盖引脚配置、电平控制等关键API;4) 结合FreeRTOS实现LED闪烁和串口打印的完整示例。文章对比了ESP32与STM32在GPIO配置上的差异,并提供了调试技巧。适合ESP32初学者快速掌握开发基础,附有官方文档和博客参考链接。
2025-08-12 07:00:00
1293
原创 ESP32入门开发·Windows平台下开发环境的搭建
本文详细介绍了ESP32开发环境的搭建与使用流程,入门级环境搭建流程,供了完整的开发环境配置指南,并附有相关软件下载链接和注意事项,适合ESP32开发者参考使用。
2025-08-12 06:00:00
1569
原创 基于Modbus-RTU通信协议读取RS485温湿度传感器主机功能(源码可直接移植)
Modbus主机代码,可直接移植使用,通过RS485实现温湿度传感器数据的采集
2025-08-11 07:00:00
1120
原创 基于Modbus-RTU通信协议实现RS485设备之间的通信(源码可直接移植)
两万字详解,基于STM32通过MODBUS-RTU通信协议实现RS485通信,内含源码可直接移植使用,内含详细的验证过程
2025-08-11 06:00:00
2456
1
原创 CRC(循环冗余校验)·CRC校验原理及步骤解析入门教程(C语言)
本文介绍了CRC(循环冗余校验)的基本原理和计算方法。首先解释了异或运算、多项式和模2运算等基础概念,然后详细说明了CRC运算的三个步骤:展开多项式获得除数、数据末端补零、进行模2除法运算。文章还拓展介绍了初始值、结果异或值、输入反转和输出反转等参数的作用,并提供了三种不同层次的C语言实现代码:从简单的单字节CRC-8计算,到支持MSB优先处理的标准实现,最后给出了能够处理任意长度输入数据的完整程序。这些代码示例展示了如何将CRC的理论计算过程转化为实际的编程实现,适用于嵌入式系统等应用场景。
2025-07-22 06:00:00
3552
2
原创 KEIL5软件使用技巧·debug仿真功能解析
本文详细介绍了STM32开发中的仿真调试配置与使用方法,详细说明了调试界面功能,包括寄存器窗口、汇编窗口、断点设置以及各种执行控制按钮的使用方法,文章提供了完整的操作流程和参数设置说明,适合STM32开发者参考使用。
2025-07-22 05:00:00
2688
原创 C语言菜鸟入门·浅析strdup和strcpy的区别
本文对比了C语言中strdup和strcpy两个字符串复制函数。strdup是POSIX扩展函数,会动态分配内存复制字符串,需手动释放内存;而strcpy是标准库函数,需预先分配目标缓冲区,存在缓冲区溢出风险。主要区别包括:内存管理方式(动态分配vs预分配)、安全性(需检查返回值vs可能溢出)、标准性(POSIX扩展vs ANSI C标准)及适用场景(动态创建副本vs已知缓冲区大小)。文中还提供了两个函数的用法示例和自定义strdup的实现方法。
2025-07-19 19:48:41
675
原创 FreeRTOS实战(十四)·RS485实现DMA数据转运
内含源码可直接移植,验证可用,基于STM32F1系列单片机,实现RS485数据接收,进行DMA数据转运
2025-07-19 05:00:00
1178
1
STM32F103RCT6移植FreeRTOS模版.zip
2025-07-09
FreeRTOS-STM32移植模版.zip
2025-05-26
基于STM32移植FreeRTOS实现TIM基本定时器.zip
2025-05-22
基于STM32移植FreeRTOS实现双ADC进行DMA数据转运
2025-05-21
基于STM32移植FreeRTOS实现多通道ADC进行DMA数据转运
2025-05-21
基于STM32移植FreeRTOS实现单通道ADC进行DMA数据转运
2025-05-21
基于STM32移植FreeRTOS实现ADC功能.zip
2025-05-20
基于STM32F1系列FreeRTOS移植模版
2025-05-14
基于STM32移植FreeRTOS-KEY调用挂起和恢复.zip
2025-05-17
基于STM32移植FreeRTOS使用外部中断EXTI
2025-05-17
基于STM32F1系列移植FreeRTOS实现串口进行DMA数据接收.zip
2025-05-17
FreeRTOS使用外部中断EXTI实现消息队列的发送与接收
2025-05-15
FreeRTOS-KEY调用挂起和恢复.zip
2025-05-14
FreeRTOS-CPU利用率.zip
2025-05-14
FreeRTOS中断管理.zip
2025-05-14
基于STM32实现RS485收发可变包长数据
2025-11-23
STM32通过RS485接收可变包长数据
2025-11-23
STM32硬件SPI读写W25Q64.zip
2025-11-19
SPI+W25Q64协议整理文档
2025-11-15
基于STM32移植FreeRTOS通过按键实现任务的挂起和恢复
2025-11-15
基于STM32移植FreeRTOS实现CAN总线通信
2025-11-15
STM32软件IIC读写EEPROM.zip
2025-11-13
基于STM32的SN74HC595控制四位数码管.zip
2025-09-24
基于STM32实现modbus-RTU主机通信.zip
2025-08-04
基于STM32实现Modbus主从机代码实现
2025-08-04
Modbus调试软件.zip
2025-07-28
基于STM32实现Modbus-RTU通信
2025-07-29
基于STM32实现RS485通讯.zip
2025-07-26
基于STM32F1系列移植FreeRTOS实现RS485进行DMA数据接收
2025-07-18
STM32在FreeRTOS基础上移植RS485
2025-07-11
基于江协/江科大的串口代码移植更改RS485
2025-07-10
main函数可以再任意位置
2024-11-21
一个周期信号经过等间隔采样后是否是周期和什么有关?
2024-11-21
C语言--a的使用,uint32_t的坑
2024-11-20
降压电路设计问题(TPS54560)
2023-12-26
STM32F103C8T6烧录问题
2023-12-12
STM32F103C8T6的ADC采集问题
2023-12-05
P10LED单元板如何实现滚屏显示
2023-10-17
STM32F103C8T6驱动七段数码管
2023-10-25
数码管显示问题乱码显示
2023-10-26
PB3,PB4引脚进行重定义
2023-10-28
STM32模块代码合并
2023-10-28
示波器如何测量占空比
2023-10-24
keil5头文件添加
2023-10-21
STM32F1kile5中如何更改
2023-10-17
AD在b站上学习的为啥,这里和视频上的不一样点击完出来这个是为什么
2023-09-26
函数于结构体的分文件编写
2023-09-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅