- 博客(61)
- 收藏
- 关注
原创 嵌入式铁头山羊STM32-各章节详细笔记-查阅传送门
本文分享了作者学习STM32嵌入式开发的入门经历。通过对比不同教学视频后,作者发现"铁头山羊"的STM32标准库教学视频讲解生动形象(如用手机配置类比芯片参数、用王者荣耀ADC解释模数转换),最终顺利完成从GPIO基础到ADC、定时器等24个知识模块的系统学习。课程资料完整(提取码TTSY),讲解细致深入,帮助作者轻松入门。作者计划通过平衡车等项目巩固知识,并将在CSDN博客持续分享学习心得,邀请读者关注交流。
2025-09-19 18:08:11
7872
27
原创 windows系统运行lvgl模拟器示例(vscode环境)
本文详细介绍了在VSCode中配置LVGL开发环境的完整流程。关键点包括:1)必须确保下载的VSCode示例项目与LVGL源码版本一致(推荐9.3版本);2)详细说明了GCC(推荐x86_64-12.2.0版本)、CMake和SDL的下载安装方法;3)重点讲解了环境变量配置和文件目录结构;4)介绍了VSCode必要扩展的安装;5)最后说明了代码修改要点和编译运行方法。特别强调版本匹配的重要性,否则会出现兼容性问题。
2026-03-17 17:30:30
329
1
原创 【IoT死磕系列】Day 9:架构一台“自动驾驶物流车”,看8种协议如何协同作战
本文详细介绍了室外自动驾驶物流小车的通信架构设计,通过多个典型场景展示了不同协议(MQTT、HTTP、ROS2、CAN、CoAP等)的协同工作。文章将整车划分为云端交互域、高性能计算域、实时控制域和极限生存域,每个域采用最适合的通信协议。重点演示了从用户下单到车辆运行的完整数据流转过程,包括紧急固件更新、路径规划、电机控制等关键环节,并提供了ROS2与CAN总线对接的核心代码实现。最后强调协议选择应基于场景需求,不同协议各司其职共同构建完整系统。该架构是主流无人车通信模型的简化版,为物联网开发者提供了实用的
2026-02-28 14:10:06
1170
原创 RTOS:ISR 和任务通知的区别(底层TCB发挥作用)
摘要:RTOS中ISR(中断服务函数)与任务的关键区别在于TCB(任务控制块)的存在。ISR由硬件触发,不具备TCB,无法阻塞或参与调度,只能快速处理并通知任务。所有RTOS同步机制(队列、信号量等)本质都是通过操作TCB实现任务间通信:任务可通过TCB挂起/唤醒,而ISR仅能作为发送者修改其他任务的TCB。核心结论是RTOS同步机制依赖TCB运作,故只能用于任务间通信,ISR因无TCB无法作为接收方。
2026-02-27 16:09:08
573
原创 【IoT死磕系列】Day 8:机器人操作系统ROS 2与DDS全解
ROS2深度解析:从嵌入式到机器人开发的通信革命 本文系统剖析了ROS2的核心架构与技术突破: 颠覆性改进:ROS2采用去中心化的DDS协议替代ROS1的Master节点架构,解决了单点故障问题 军工级通信:详解DDS的P2P通信机制和四大QoS策略(可靠性/历史记录/截止时间/活跃度) 嵌入式适配:介绍micro-ROS如何让STM32等MCU成为原生ROS2节点 实战演示:通过C++代码展示企业级激光雷达节点的QoS配置 开发陷阱:揭示局域网组播通信的隐患及DOMAIN_ID隔离方案 技术前瞻:预告将串
2026-02-27 15:30:58
1229
原创 RTOS:FromISR 接口 与 portYIELD_FROM_ISR 逻辑分析
FreeRTOS中断服务程序(ISR)的任务切换机制采用"两步法":1)ISR内标记切换需求,2)中断退出时执行切换。关键要素包括:xHigherPriorityTaskWoken作为输出参数指示是否需要切换;FromISR接口仅标记不执行切换;portYIELD_FROM_ISR()在中断退出时触发实际切换。标准ISR模板必须包含初始化、API调用和切换请求三个步骤。在Cortex-M架构中,切换通过PendSV中断实现,确保在安全点完成上下文切换。这种设计避免了ISR内直接切换的风险
2026-02-26 13:28:19
502
原创 【IoT死磕系列】Day 7:学习工业控制 CANopen 协议
本文探讨了如何在8字节CAN报文限制下实现复杂工业控制,重点解析了CANopen协议的核心机制。通过引入"对象字典"概念,CANopen将设备参数组织为索引化结构,解决了大数据量传输问题。文章详细介绍了SDO(分段传输配置数据)和PDO(实时控制数据)两种通信模式,并展示了企业级应用中CANopenNode协议栈的使用实例。最后指出CANopen在传统工业控制的优势,同时预告了面向更复杂AI机器人系统的DDS协议将是未来趋势。全文深入浅出地揭示了工业控制协议设计的精髓。
2026-02-25 14:44:13
789
原创 【IoT死磕系列】Day 6:工业控制底层大动脉—CAN总线
本文深入探讨工业控制领域核心通信协议CAN总线的硬核技术原理。重点解析其三大核心优势:1)差分信号抗干扰机制,通过电压差实现强电磁环境下的稳定传输;2)无地址的发布/订阅模式,实现设备间的完全解耦;3)非破坏性仲裁机制,确保关键数据的零延迟传输。文章还揭示了从单片机寄存器开发到Linux SocketCAN的进阶路径,并指出常见调试陷阱(如终端电阻配置和Bus-Off状态处理)。最后引出CANopen协议预告,为工业设备高级控制奠定基础。全文兼具技术深度和工程实践价值,是进入汽车电子和机器人底层开发的必备指
2026-02-24 11:31:20
1235
原创 【IoT死磕系列】Day 5:轻量级:CoAP协议(附硬核手撕报文)
本文深入解析了CoAP协议在物联网领域的独特优势与应用场景。文章首先通过地下智能水表的案例,揭示了MQTT协议在极端低功耗场景下的局限性,引出基于UDP的CoAP协议。详细剖析了CoAP的核心特性:采用二进制编码压缩报文(最小仅4字节)、支持四种消息类型实现可靠性控制、创新的Observe机制实现服务端推送。同时指出了UDP面临的NAT穿透问题及解决方案。最后对比了CoAP与HTTP/MQTT的差异,强调其在NB-IoT等低功耗场景中的不可替代性,为开发者提供了极简通信协议选择的新思路。
2026-02-23 13:00:27
777
原创 RTOS:ISR与互斥量的关系
摘要:本文解析了FreeRTOS中ISR(中断服务函数)与Task(任务)的关键区别,指出ISR具有硬件触发、非调度管理、不可阻塞和执行时间短四大特征。重点阐述了信号量类型SemaphoreHandle_t的实现复用原理,特别强调互斥量因拥有者机制和优先级继承特性而禁止在ISR中使用。最后总结ISR的正确使用方式应是快速通知任务,并明确FromISR系列API仅适用于二值/计数信号量,不适用于互斥量。全文用简洁的技术语言揭示了RTOS中中断处理的三大核心原则。
2026-02-22 14:43:54
573
原创 【IoT死磕系列】Day 4:学习MQTT协议
MQTT协议是物联网领域的轻量级通信霸主,采用发布/订阅模式解决HTTP轮询的资源浪费问题。其核心优势包括:仅2字节的极简报文头、支持通配符的主题订阅机制、三种QoS级别保障不同场景下的传输可靠性,以及保留消息和遗嘱机制等企业级功能。在嵌入式开发中,MQTT通过回调函数实现异步通信,配合RTOS可构建高效物联网系统,但需注意心跳维护和缓冲区溢出等常见问题。相比HTTP,MQTT更适合资源受限的物联网设备,为STM32到Linux系统的开发提供了统一通信方案。
2026-02-22 14:18:01
685
原创 【IoT死磕系列】Day 3:学习HTTP!实战:STM32手写GET请求获取天气实战(附源码+八股文)
本文摘要:深入解析HTTP协议在物联网中的应用与局限。HTTP作为应用层协议,采用请求-响应模型实现客户端与服务器通信,但其文本格式导致数据臃肿(100+字节头部传输2字节有效数据),对资源受限的嵌入式设备极不友好。通过STM32+RTOS实战案例,展示了纯C语言实现天气API请求的关键技术,包括TCP连接建立、HTTP报文拼接及响应解析。文章指出HTTP在物联网中的两大痛点:流量浪费和被动通信模式,并预告将介绍更适合物联网的MQTT协议。
2026-02-21 20:50:54
1064
原创 【IoT死磕系列】Day 2:一文了解TCP/IP(附LwIP企业级代码与面试八股、注意事项)
本文深入解析TCP/IP协议的核心概念与应用场景。首先澄清TCP/IP并非单一协议,而是由IP协议(负责寻址路由)和TCP协议(确保可靠传输)组成的协议族。重点剖析了TCP的可靠性机制及其性能代价,并通过"打电话"类比形象解释了三次握手和四次挥手的通信原理。针对嵌入式开发场景,提供了基于LwIP的TCP客户端代码模板及内存泄漏等常见问题预警。文章还解答了粘包、Keepalive等面试高频问题,并附带专业术语词典。最后指出TCP作为传输层管道需要结合应用层协议(如HTTP)才能实现标准化通
2026-02-21 14:12:19
1022
原创 【IoT死磕系列】Day 1:IOT物联网各个协议的整体了解
本文系统梳理了物联网通信协议的核心概念与应用场景。作者指出物联网协议的本质是"数据打包规则",并强调协议选择需匹配硬件资源与网络环境。文章通过TCP/IP四层模型架构,详细分类介绍了有线/无线通信技术(如以太网、Wi-Fi、NB-IoT)、传输层协议(TCP/UDP)及主流应用层协议(MQTT/CoAP/DDS等)。最后提出选型建议:工业控制推荐CAN/DDS,智能硬件优选Wi-Fi+MQTT,低功耗设备适用LoRa+CoAP。本文为开发者建立了物联网协议的全景认知框架,为后续深入探讨T
2026-02-20 19:59:51
978
2
原创 串口模拟工具:com0com 介绍、下载、驱动感叹号解决
com0com是一款Windows虚拟串口工具,可在电脑中创建成对的虚拟串口(如COM3↔COM4),用于串口调试和设备模拟。安装后需在PortsClass界面配置端口名称并Apply。若出现驱动未识别问题,可通过三种方法解决:1)重启进入禁用驱动签名模式(按F7);2)通过Windows更新安装可选驱动;3)使用cmd执行"bcdedit/set nointegritychecks on"命令关闭驱动验证。测试时可用串口助手工具检测端口是否生效。该工具特别适合在没有物理设备时进行串口程
2026-02-20 13:14:24
1034
原创 cubeProgram 安装下载和使用---用于上位机烧录固件
摘要:本文详细介绍了STM32CubeProgrammer软件的安装与使用指南。主要内容包括:1)从ST官网下载软件并完成安装;2)软件界面功能说明,包含连接参数配置、设备信息显示、固件下载和芯片擦除等核心功能;3)Flash信息读取方法,需设置32bit格式的地址参数和Size大小;4)固件烧录流程及失败处理建议;5)软件注意事项,强调其作为底层工具用于烧录、擦除、调试等操作而非代码编写。特别提醒注意bin文件地址选择、OptionBytes配置风险等关键点,并提供了芯片救砖技巧。
2026-02-12 22:33:48
236
原创 keil编译生成hex文件和bin文件
本文介绍了将ARM编译文件转换为可烧录二进制文件的方法:1)使用魔术棒工具创建执行文件;2)选择生成HEX或BIN文件选项;3)对于BIN文件需输入转换指令"fromelf --bin -o '$L@L.bin' '#L'",该指令将带调试信息的ELF/AXF文件转为纯二进制格式;4)保存编译后,在项目object文件夹中即可获取生成的BIN和HEX文件。整个过程实现了调试文件到芯片可烧录文件的转换。
2026-02-12 22:14:00
170
原创 部分.exe文件打开但是一直显示界面,点击任务栏持续无反应
如何将任务栏软件窗口最大化 检查任务栏:确认目标软件是否在下方任务栏中。 选择程序:鼠标点击任务栏上的对应软件图标。 快捷键操作:按下 Alt + 空格键 调出窗口控制菜单。 点击最大化:在弹出的菜单中选择“最大化”选项即可。 此方法适用于快速调整窗口大小,尤其适合键盘操作场景。
2026-02-04 15:28:49
182
原创 keil编译错误:Error: Flash Download failed
摘要:针对ST-LINK下载失败问题,提供三种解决方法:1)检查设备连接状态,确认无接触不良;2)处理低功耗模式导致的问题,按住复位键进行烧录;3)更换电脑USB接口,解决供电不稳问题。其中方法三通过更换USB接口多次有效解决问题。用户可根据实际情况选择对应方案,并反馈最佳解决效果。
2025-12-31 21:23:44
644
原创 嵌入式笔记(个人总结)
本文总结了嵌入式学习笔记,涵盖STM32开发、HAL库使用、嵌入式技巧、电路知识、C语言要点及嵌入式数学等内容。重点包括STM32学习路径、HAL库应用方法、常见开发技巧和硬件电路基础知识,同时整理了C语言速成指南和嵌入式开发所需的数学知识。笔记内容持续更新,形成了一套完整的嵌入式开发知识体系。
2025-11-29 15:25:02
413
原创 Stm32江科大入门教程--各章节详细笔记---查阅传送门
这是一篇江科大STM32标准库视频的学习笔记汇总,按章节整理了从GPIO基础到高级外设应用的完整知识体系。内容包含:1-19章基础外设(GPIO/定时器/ADC/DMA等)的学习总结;20-36章通信协议(USART/I2C/SPI)的实现方法;37-47章系统功能(RTC/电源管理/看门狗/Flash操作)。末尾附有"智能家居安防系统"项目示意图。笔记为个人学习整理,不做商用。
2025-11-01 14:41:54
1668
1
原创 b站字幕提取
这是一篇关于从B站下载字幕的两种方法指南。方法一通过Kedou在线解析器获取SRT字幕,再转换为TXT格式;方法二则利用浏览器开发者工具获取JSON格式字幕数据,再通过在线工具转换。两种方法都提供了详细的步骤说明和对应的网址工具,方便用户根据需求选择适合的字幕下载方式。
2025-10-26 12:23:26
347
原创 20.AD单通道&AD多通道应用程序示例
摘要:本文介绍了STM32单片机ADC模块的单通道和多通道配置方法。单通道配置包括初始化ADC时钟、GPIO设置、ADC参数配置及校准流程,并通过软件触发读取转换值。多通道配置采用非扫描模式,通过循环切换通道实现多路采样,同样使用软件触发方式。代码示例展示了如何初始化ADC、读取转换值及电压计算,其中单通道使用PA0引脚,多通道扩展至PA0-PA3引脚。两种模式均采用12MHz时钟和55.5周期采样时间,并通过OLED显示采集数据。
2025-10-12 13:50:57
157
原创 VOFA一眼学会使用和常犯的错误
VOFA串口使用要点:1.配置串口后点击Rx接收数据,可拖拽图表元素并右键调整Y轴等参数。2.常见问题排查:无法接收数据需检查Rx开关、单片机复位及串口选择(可重新插拔USB设备确认);有数据但无通道显示通常是串口格式错误,需按正确格式发送数据。
2025-09-27 21:51:32
906
原创 铁头山羊stm32-HAL库
本文摘要:文章详细介绍了STM32开发中的关键模块配置与实现方法,包括调试模式选择(SWD/JTAG/Trace)、GPIO控制、UART/I2C/SPI通信协议、时钟树配置、中断处理、定时器应用(PWM/输入捕获/编码器模式)以及ADC采样等。重点讲解了CubeMX工具对各模块的配置要点,提供了HAL库编程接口的实际应用示例,如LED控制、OLED驱动、超声波测距、呼吸灯和光敏传感器实验。文中特别强调了调试优化关闭、代码注释区域保护、外设时钟分配、中断优先级设置等开发注意事项,并对比了不同调试模式的引脚占
2025-09-18 16:14:16
1812
原创 蓝桥杯算法之基础知识(7)---排序题的快排和归并排序
文章摘要:本文介绍了两种经典排序算法的实现方法。快速排序采用"基准值划分+递归处理"的三步策略,重点讲解了区间划分的实现细节和易错点,如基准值选择、索引处理等。归并排序同样采用"分界点确定+递归处理+合并"的三步策略,特别强调了合并步骤中临时数组的使用和结果回写的重要性。两种算法都提供了完整的Python代码实现,并指出了编程时的常见错误点,如递归终止条件、变量命名和数组更新等注意事项。
2025-09-11 23:53:12
452
原创 嵌入式铁头山羊stm32:一文总结
本文是一篇STM32嵌入式开发的综合知识总结,涵盖了STM32基础概念、GPIO、通信协议、外设驱动等核心内容。文章首先介绍了STM32的基本概念和型号含义,然后详细讲解了GPIO的8种工作模式及实验案例。接着重点阐述了USART、I2C、SPI三种通信协议的原理和实现方法,包括硬件连接、编程接口和实验应用。此外还介绍了OLED显示原理、中断系统、定时器、ADC转换等关键技术,每个模块都配有对应的实验案例和代码实现参考。文章内容全面系统,既包含理论知识,又提供实践指导,适合作为STM32开发的快速参考手册。
2025-09-11 22:01:57
2232
原创 蓝桥杯算法之基础知识(6)
本文摘要:文章介绍了Python编程中的多个核心知识点,包括时间单位换算(毫秒/秒/分钟/小时的转换逻辑)、时间戳定义与判断、文件读取操作(with open语句)、堆数据结构的使用(最大堆实现)、math模块操作、range()方法、异常处理以及for-else/while-else循环结构。重点讲解了时间计算中的整除和取模运算技巧,以及使用heapq模块实现最大堆的具体方法。这些内容涵盖了Python编程中常见的时间处理、数据结构和文件操作等实用技术。
2025-09-03 23:53:23
1321
原创 使用Navicat去批量传输数据库的表结构
摘要:使用Navicat传输数据库表结构(不含数据)的步骤:1)打开工具中的数据传输功能;2)选择源数据库和目标数据库;3)选定需要传输的表后点击选项;4)取消"创建记录"勾选并确认,即可仅传输表结构而不包含实际数据。操作简单,适用于数据库结构迁移场景。
2025-09-03 14:23:59
260
原创 蓝桥杯算法之基础知识(5)
本文摘要:文章介绍了Python编程中的10个核心知识点,包括in方法检查元素存在性、字典操作、数据单位转换、闰年判断、count()与Counter的区别、max/min嵌套使用、字符串格式化、itertools求前缀和、笛卡尔积计算,以及无穷大/小的表示方法。重点对比了count()与Counter的特性,并展示了Counter的高级应用如most_common()和次数加减运算。这些内容涵盖了Python基础到进阶的关键技术点。
2025-09-02 23:34:25
3157
2
原创 蓝桥杯算法之基础知识(4)
本文总结了Python中常用的排序和数据类型操作技巧。主要内容包括:1) sorted()和sort()的用法,包括默认排序、降序、lambda表达式作key参数;2) 多关键字排序、字符串/字典排序等实用排序技巧;3) 列表、字符串、元组的创建与操作;4) 字符串拼接与倒序遍历;5) 列表拼接与负数索引;6) ord()和chr()的字符编码转换;7) 进制转换方法。这些技巧涵盖了Python数据处理的基础操作,特别适合需要快速处理列表、字符串等数据类型的场景。
2025-09-02 23:20:00
1531
原创 笔记本电脑蓝牙搜索不到设备-已解决
摘要:修复电脑蓝牙问题的3种方法:1)运行蓝牙疑难解答自动检测修复;2)通过设备管理器更新蓝牙驱动;3)在蓝牙设置中切换"设备发现"功能模式(高级/默认)。第三种方法特别适用于设备搜索不到的情况,建议根据当前设置状态切换尝试。
2025-08-28 20:08:30
1545
原创 keil5的联想输入设置
摘要:Keil5开启联想输入模式的方法是通过设置触发联想的字符数量(默认为3个字符)。若设置后无效,建议关闭软件重新启动。如遇其他问题,欢迎在评论区或私信咨询。本文还呼吁读者关注支持。
2025-08-28 15:56:49
475
原创 蓝桥杯算法之基础知识(3)——Python的idle的快捷键设置(idle改键)
摘要:在options菜单中创建自定义快捷键集合,可自由修改键位功能(如更改F1键映射)。设置完成后,选择docs即可启用个人快捷键方案。该功能允许用户根据操作习惯灵活配置热键组合,提升工作效率。
2025-08-27 23:26:26
312
原创 蓝桥杯算法之基础知识(2)——Python赛道
这篇文章总结了Python编程中的常见技巧和注意事项,主要包括:1.递归与循环的注意事项,包括递归深度限制的解决方法;2.列表操作技巧,如遍历时修改列表的解决方案;3.数学运算注意事项,如sqrt返回类型问题;4.输入输出优化方法,包括使用sys.stdin加速读取;5.二维数组的创建和赋值技巧;6.列表的各种操作方法(增删改查、排序、复制等)。这些技巧对提高编程效率和避免常见错误很有帮助。
2025-08-23 23:51:57
696
原创 嵌入式铁头山羊stm32-EXTI的工作原理和按钮实验-Day19
本文介绍了STM32中EXTI(外部中断/事件控制器)的工作原理及应用。主要内容包括:1. EXTI模块通过检测信号边沿变化(上升沿/下降沿)触发中断;2. 以按钮实验为例,展示了如何利用EXTI替代传统轮询方式检测按键状态;3. 详细说明EXTI线的分配、配置流程及NVIC中断设置;4. 重点强调中断响应后必须清除标志位,避免影响其他中断;5. 提供完整的按键控制LED灯实验代码,包括GPIO初始化、EXTI配置和中断服务函数实现。该方案相比轮询方式更高效,能实时响应外部信号变化。
2025-08-22 17:23:08
1274
原创 蓝桥杯算法之基础知识(1)——Python赛道
本文总结了Python编程和算法竞赛中的实用技巧:1)使用type()查看变量类型;2)Python执行效率经验(1秒≈1亿次操作),提供了不同数据规模下的算法选择建议;3)数字位求和等实用代码片段;4)调试与优化技巧,包括异常预防、时间测量方法等。这些经验对算法竞赛(如蓝桥杯)有重要参考价值,能帮助选手合理选择算法并避免常见错误。
2025-08-21 23:45:42
334
原创 嵌入式铁头山羊stm32-中断的概念,优先级,编程-Day18
本文介绍了中断的概念及其在单片机编程中的应用。中断是程序运行过程中处理突发事件的机制,文中以串口控制LED闪烁为例,说明当串口接收速度远快于主循环处理速度时,使用中断可避免数据丢失。文章详细讲解了中断优先级(抢占优先级和子优先级)的管理规则、NVIC中断控制器的配置方法,并提供了完整的STM32中断编程示例代码,包括GPIO初始化、串口配置、NVIC设置和中断响应函数实现。通过这个案例,展示了如何利用中断机制实现实时响应外部事件的功能。
2025-08-21 23:13:22
755
原创 嵌入式铁头山羊stm32-SPI的W25Q64实验-Day17
本实验通过STM32单片机与W25Q64 Flash存储器实现断电数据保存功能。实验使用SPI通信协议,通过初始化板载LED和按钮,实现按钮控制LED状态切换,并将当前状态存入W25Q64中。断电后重新上电时,系统会从W25Q64读取保存的状态数据并恢复LED状态。实验详细介绍了W25Q64的存储结构、读写操作流程及硬件初始化方法,重点说明了写使能、扇区擦除、页编程等关键步骤的实现。通过该实验验证了Flash存储器的断电数据保存功能,实现了类似移动硬盘的数据持久化特性。
2025-08-20 17:02:36
858
5
空空如也
关于#python#的问题,请各位专家解答!
2022-10-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅