- 博客(134)
- 收藏
- 关注
原创 【物联网学习笔记】TIM
本文详细介绍了基于STM32WL系列芯片的物联网备赛学习笔记,重点讲解了核心外设配置与驱动开发流程。内容包括:1. 关键外设原理:定时器TIM17实现1ms中断、12位ADC采集、USART串口通信、I2C驱动OLED等核心模块的工作原理与计算公式。2. CubeMX配置:从工程创建到时钟树设置,详细说明了TIM定时器、ADC模数转换、USART串口(含DMA+IDLE中断)、I2C、RTC等外设的图形化配置步骤与参数设置。3. Keil工程开发:构建自定义app模块封装外设驱动,实现LED控制、按键检测、
2026-04-17 16:33:21
76
原创 【物联网学习笔记】单路 ADC 采集
本文介绍了STM32单片机ADC模块的基础原理与应用开发流程。主要内容包括:1. ADC基础概念解析,包括模拟/数字信号转换原理、12位分辨率特性;2. 基于STM32CubeMX的ADC配置步骤,涵盖时钟设置、通道选择、采样参数等;3. Keil开发环境下ADC采集功能的代码实现,重点讲解了单次转换模式的软件触发方法;4. 通过电位器实验验证ADC功能,实现模拟量采集与串口数据显示。教程采用CubeMX图形化配置工具,结合HAL库函数开发,降低了嵌入式ADC应用的入门门槛,适用于物联网传感器数据采集等应用
2026-04-17 15:14:57
111
原创 【C++学习笔记】语法基础篇:string
本文介绍了C++中字符串的基本操作,主要包括6种初始化方法(空字符串、直接赋值、复制构造、部分截取、指针初始化、重复字符)和9种常用操作(输出转换、长度获取、拼接、查找、替换、提取、比较、遍历等)。重点讲解了字符串遍历的两种方式(下标循环和auto枚举),特别说明了auto枚举时加引用符号(&)可直接修改原字符串。这些操作通过代码示例展示了具体用法,是C++字符串处理的实用基础内容。
2026-04-10 01:38:12
40
原创 【物联网学习笔记】ADC
本文详细介绍了基于STM32WLE5CCU6芯片的ADC采集开发流程。主要内容包括:1. ADC基础概念解析,包括模拟/数字量转换原理和12位分辨率特性;2. 使用STM32CubeMX进行外设配置的完整步骤,重点说明ADC参数设置;3. Keil工程中实现ADC采集功能的核心代码,包含数据读取函数和电压换算方法;4. 常见问题解决方案,如串口输出异常、ADC数值不稳定等。该教程通过电位器电压采集实例,完整呈现了从硬件配置到软件实现的开发全流程,可作为物联网设备信号采集的入门参考。
2026-04-02 01:41:13
415
原创 【物联网学习笔记】OLED
本文详细介绍了基于STM32开发板驱动0.91寸I2C接口OLED显示屏的完整流程。内容包括硬件准备(开发板、OLED屏、数据线等)、软件配置(STM32CubeMX和Keil MDK5)、I2C接口接线说明,以及通过STM32CubeMX图形化配置工程的6个关键步骤。重点讲解了代码实现部分,包括OLED驱动文件添加、功能函数封装和主程序编写,特别强调了开启MicroLIB库以避免sprintf报错的注意事项。最后介绍了程序编译下载方法和实验现象:OLED屏可实时显示RTC时间并记录按键次数。本文为物联网竞
2026-04-01 00:29:08
451
原创 【单片机复习笔记】第十六届省赛复盘
若如此处理触发功能,当ulms,change_time都设初值为零的话,测距函数要等到第三秒才能进来第一次正确处理。
2026-03-28 19:14:36
52
原创 【单片机学习笔记】第十七届模拟赛3经验复盘
本题是我见过按键玩的最花,最不常规的一届,涉及的一个重要问题就是,针对本题有两重的代码逻辑需要优化。
2026-03-21 19:17:17
131
1
原创 【单片机学习笔记】核心难点积累兼第十四届省、国赛经验复盘
经验总结:之前我个人习惯把计算直接写在式子里,但其实这会增加程序的复杂度,造成卡顿等一些列不理因素,所以建议以后把。
2026-03-21 19:04:39
20
原创 【单片机学习笔记】第十三届国赛经验复盘
本文总结了单片机开发中的常见错误及解决方案:1. 数码管显示异常(如9.05)是因格式化字符串缺少空格导致残影,应确保8位数码管全部刷新。2. 继电器计数错误是因持续累加而非边缘触发,应改为状态变化时计数并保护EEPROM写入。3. 系统崩溃由高频中断中的EEPROM操作和锁存器冲突引起,建议:- 将逻辑计算移出中断 中断内添加现场保护(保存/恢复端口状态) 采用"原子操作"(EA=0/1)保护关键操作 合理分配定时器功能 这些优化可解决显示异常、外设冲突和系统卡顿等问题,提高系统稳定性
2026-03-20 16:25:04
396
原创 【物联网学习笔记】RTC
本文详细介绍了STM32芯片RTC功能的配置与使用流程。首先解释了RTC作为实时时钟的基本概念及其掉电保持时间的特性,强调其无需GPIO配置即可使用。接着通过CubeMX工具逐步展示了RTC配置过程,包括RCC外部晶振设置、USART串口配置、RTC核心参数设定等关键步骤。随后重点讲解了代码实现,包括自定义RTC结构体定义、时间读取函数编写,以及在主函数中集成RTC功能并通过串口打印实时时间的方法。最后说明了编译下载和串口验证的具体操作。全文采用模块化编程思想,确保代码可维护性,并特别标注了新手常见注意事项
2026-03-17 15:49:17
578
原创 【物联网学习笔记】串口接收
摘要:本文详细介绍了基于STM32的DMA+串口IDLE空闲中断实现不定长数据收发方案。通过CubeMX配置USART2串口、DMA通道及中断优先级,结合自定义app.c/app.h驱动文件,实现了串口数据回环、LED控制和按键读取功能。重点讲解了IDLE中断触发机制、DMA自动搬运数据原理,以及如何通过标志位判断数据接收完成。该方案有效解决了传统串口接收方式中CPU资源占用高和无法适应不定长数据的问题,提供了完整的工程配置步骤、代码实现和调试方法,并附有常见问题排查指南。
2026-03-16 20:12:40
569
原创 【单片机复习笔记】一些注意事项
当同时读取双路ADC时,读取数值会因操作顺序的原因发生读取数值交换的情况,即读光敏电阻会读到电位器的值,读电位器会读到光敏电阻的值,遇到该情况请注意交换。
2026-03-12 17:05:27
18
原创 【物联网学习笔记】串口发送
本文详细介绍了STM32WLE5CCU6开发板的串口通信实现流程。主要内容包括:1)串口通信基本原理,重点说明USART异步通信参数配置;2)使用STM32CubeMX进行外设初始化,包括时钟树配置、USART2参数设置等关键步骤;3)Keil工程配置与代码编写,实现printf重定向和字符串发送功能;4)串口助手配置与实验现象验证。文章强调配置参数必须严格匹配(115200波特率8N1),并提供了完整的代码实现方案,包括app.c/h文件创建、fputc函数重写等关键技术点。最后通过串口调试助手验证通信效
2026-03-11 00:09:08
446
原创 【单片机学习笔记】PWM专题
本文为单片机竞赛学习笔记,主要记录PWM控制LED亮度的实现方法。当需要PWM控制时,LED操作应从led_proc函数移至主中断处理。针对1KHz PWM输出需求,由于1ms周期精度不足,需使用定时器产生100us周期中断以提高控制精度。笔记仅供个人学习参考,非教学用途。
2026-03-03 15:34:26
68
原创 【EDA学习笔记】51 单片机核心板 PCB 项目实战
本文详细介绍了51单片机核心板PCB设计的全流程实战要点。从元件选型开始,围绕最小系统、电源电路和外围功能电路进行器件选择;接着讲解原理图设计的关键是确保电气连接正确;重点阐述了PCB布局的核心原则和布线规范,强调模块化布局、手动布线和关键信号优先;最后说明了丝印设计、DRC检查和生产文件导出的注意事项。文章提供了从入门认知到具体操作的完整指导,特别指出了新手常见错误点,为零基础学习者提供了系统性的51核心板PCB设计教程,是嵌入式硬件开发的入门必修课。
2026-03-02 17:45:49
744
原创 【单片机学习笔记】串口、超声波、NE555的同时使用
本文是本人备赛赛项的学习笔记,主要供本人学习、复习,不是经验分享或教学,若有错误,大佬轻喷。
2026-02-25 16:51:46
190
原创 【物联网学习笔记】中断
本文系统介绍了STM32中断机制的核心概念与处理流程。主要内容包括:1)中断基础概念,如中断向量、中断向量表及其在STM32中的存储位置;2)程序启动与中断触发流程,从复位到主程序执行再到中断处理的完整链路;3)中断优先级配置规则,强调数值越小优先级越高,并详细说明抢占优先级与响应优先级的区别;4)中断嵌套原理与铁则,只有高抢占优先级中断才能打断正在执行的中断;5)完整中断处理三阶段流程,包括硬件自动保存现场、软件执行中断服务程序、硬件恢复现场并返回。全文通过清晰的技术要点和典型场景示例,帮助读者掌握STM
2026-02-24 19:03:52
910
原创 【强化学习学习笔记】马尔科夫决策过程
本文摘要: 本文系统介绍了强化学习的核心概念与马尔可夫决策过程。首先回顾强化学习特点(无监督、延迟奖励、序列决策等)和智能体-环境交互流程。重点讲解了马尔可夫过程(MP)、马尔可夫奖励过程(MRP)和马尔可夫决策过程(MDP)的递进关系,详细阐述了状态价值函数、动作价值函数、贝尔曼方程(期望方程和最优方程)等核心概念。最后总结了公式体系和易混淆点,强调MP→MRP→MDP的演进逻辑及策略评估与优化的区别。全文为理解强化学习提供了系统化的理论基础。
2026-02-15 17:53:15
693
原创 【物联网学习笔记】按键与LED
本文介绍了物联网竞赛中按键模块的学习要点,包括按键分类(触点式/无触点式)、抖动问题及消抖处理(20ms延时)。重点解析了开发板按键硬件连接(PA8/PB8引脚低电平触发)和CubeMX输入模式配置原理,详细说明了按键检测函数的实现逻辑,包含两次电平检测和延时消抖机制。通过宏定义状态提高代码可读性,在主循环中持续检测实现实时响应。全文从硬件原理到软件实现,系统性地讲解了单片机按键模块的核心知识与应用方法。
2026-02-02 18:54:44
692
原创 【强化学习学习笔记】强化学习简介
摘要:强化学习是机器学习的重要分支,其核心在于智能体通过与环境交互,基于奖励信号学习最优策略。关键要素包括奖励函数、序列决策、状态定义(马尔可夫性)和环境可观测性(完全/部分)。智能体由策略、价值函数和模型三大组件构成,可分为基于价值/策略/执行者-评论者等类型。强化学习面临三大核心权衡:学习与规划(环境已知性)、探索与利用(信息获取与收益)、预测与控制(策略评估与优化)。典型应用场景包括游戏AI、机器人控制和决策系统等。
2026-02-02 15:41:07
616
原创 【物联网学习笔记】时钟树
本文介绍了STM32微控制器时钟系统配置方法,重点讲解了低速时钟(LSI/LSE)、高速时钟(HSE/HSI16/MSI)、PLL倍频模块以及系统时钟分配的关键设置。文章提供了CubeMX配置建议:禁用内部时钟源(LSI/HSI16/MSI),启用外部晶振HSE作为主时钟源,通过PLL倍频至芯片最大主频,并建议将各总线分频设为1以获得最高性能。同时指出应根据实际需求配置RTC时钟源,并推荐禁用不必要的辅助模块如MCO、CSS等。最后给出了简明的CubeMX配置步骤,强调优先使用总线时钟作为外设时钟源。
2026-01-29 15:11:39
887
原创 【科研学习记录】自适应动态规划(ADP)与强化学习(RL)理论入门
本文探讨了动态规划(DP)、自适应动态规划(ADP)和强化学习(RL)的核心思想及其相互关系。三者都旨在解决动态系统中的多步决策问题,通过贝尔曼方程将复杂问题分解为单步决策。文章首先介绍了状态、动作和回报三个核心概念,以及期望、递推关系和压缩映射等数学基础。重点分析了传统DP的局限性(模型依赖、维度灾难和离线计算),并详细阐述了ADP的改进方案:数据驱动、函数逼近和在线自适应。特别介绍了ADP的双网络结构(评价网络和执行网络)和三大经典算法(HDP、DHP和GDHP)。最后讨论了Actor-Critic方法
2026-01-27 15:25:47
1145
原创 【单片机复习笔记】模板
摘要:本文介绍了LEDinitTIM竞赛中涉及的关键外围设备与技术标准,包括蜂鸣器(BUZZER)、继电器(RELAY)、温度传感器(RTCDC18B20)、模数转换器PCF8591(A/D、D/A)、EEPROM存储器、NE555定时器以及超声波传感器(ULTRASONIC)。重点突出了IIC总线在PCF8591和EEPROM中的应用,展现了竞赛对多种电子元器件集成应用的考核要求。
2026-01-23 04:24:45
283
原创 【嵌入式学习笔记】OLED超容易小作业:简单多级菜单交互
本文介绍了基于嵌入式系统的OLED显示与按键交互实现方案。通过全局变量管理模式状态(增加/减少)和数值(0-10),采用刷新标志位机制优化显示性能。具体实现包括:1)使用KEY6切换工作模式;2)通过KEY5在不同模式下增减数值;3)OLED实时显示当前模式和数值。系统采用事件驱动设计,仅在数据变化时刷新屏幕,有效避免了I2C总线资源浪费。文章详细解析了状态管理、按键控制和显示刷新的协作机制,并强调了边界检查(数值范围限制)和性能优化(标志位刷新)等关键技术点。
2026-01-15 17:37:04
924
原创 【嵌入式学习笔记】OLED 显示驱动 (SSD1306)
本文详细介绍了I²C协议及其在嵌入式系统中的应用,重点讲解了SSD1306 OLED显示屏的驱动开发流程。主要内容包括: I²C协议基础:讲解I²C总线结构、主从架构、设备寻址、数据传输机制等核心概念; SSD1306芯片详解:分析其特性、I²C通信协议、显示原理和控制流程; STM32 HAL库I²C API解析:介绍关键函数的使用方法; 驱动开发实践:提供从基础驱动到u8g2图形库的完整移植指南; 菜单系统实现:介绍WouoUI-Page菜单框架的移植与集成。 文章通过理论讲解与实践操作相结合的方式,帮
2026-01-15 16:51:49
705
原创 【嵌入式学习笔记】AD/DA项目实践:简易信号发生器
本文详细介绍了基于STM32CubeMX和HAL库开发简易信号发生器的完整流程。项目实现了三种波形(正弦波、方波、三角波)的切换功能,支持按键调节频率和旋钮调节振幅。硬件配置包括DAC输出、ADC采样、定时器触发等关键外设。软件架构采用非阻塞任务调度器,包含波形生成算法(数学计算)、ADC处理(抗抖动设计)和按键交互逻辑。通过DMA循环传输实现高效波形输出,频率调节通过修改定时器ARR值实现。整个系统实现了低耦合、易扩展的设计目标,可作为嵌入式开发的实践案例。
2026-01-06 14:38:23
851
原创 【嵌入式学习笔记】AD/DA
本文介绍了嵌入式系统中ADC和DAC的基本概念与应用。主要内容包括:1. ADC/DAC原理:ADC将模拟信号转换为数字信号,DAC实现反向转换;2. 关键参数:分辨率、参考电压、采样率等;3. 三种ADC实现方法:轮询法(简单但效率低)、DMA+定时处理(降低CPU占用)、定时器触发+DMA+中断(精准采样);4. DAC应用:通过DMA和定时器实现正弦波输出;5. HAL库API详解:包括ADC/DAC相关函数的使用说明。文章通过实例代码和CubeMX配置指导,帮助理解嵌入式系统中模拟信号处理的核心技术
2026-01-06 12:48:03
750
原创 【嵌入式学习笔记】UART
本文详细介绍了STM32嵌入式系统中UART串口通信的基础概念和两种数据接收方法。首先讲解了UART的工作原理,包括串行与并行传输的区别、波特率、数据帧格式等基础知识。然后重点阐述了两种数据接收方案:超时解析法和DMA+空闲中断法。超时解析法通过中断接收单个字节并利用时间间隔判断帧结束,适合低速场景;DMA+空闲中断法则利用DMA自动搬运数据并通过总线空闲状态检测帧结束,适合高速大数据量传输。文章还深入分析了HAL库相关API的设计原理和使用方法,并介绍了环形缓冲区的实现及其优势。最后通过代码实例详细说明了
2026-01-02 18:01:54
730
原创 【嵌入式学习笔记】Key模块解析
本文介绍了嵌入式开发中GPIO输入模式的三种配置方式及其应用场景:上拉模式(默认高电平)、下拉模式(默认低电平)和浮空模式(易受干扰)。重点分析了两种按键驱动实现方案:基础状态对比法和基于easy_button组件库的高级实现。基础方案通过位运算对比新旧状态检测按键事件;组件库方案则提供消抖、连击和组合键等高级功能,通过回调函数实现硬件与软件解耦。文章详细解析了easy_button库的参数配置、硬件映射、事件处理等核心模块,并总结了使用该库的五个关键步骤,为嵌入式按键开发提供了实用指导。
2025-12-26 16:54:35
992
原创 【EDA学习笔记】电子技术基础知识:读懂与画好原理图
本文系统介绍了电子设计原理图的核心要点:1.原理图四要素(元件符号、连接线、结点、注释)及其作用;2.阅读原理图的关键步骤(整体认知、模块识别、连接分析);3.绘制规范原理图的方法(模块化设计、参数标注、网络标签等);4.原理图在电子设计流程中的基础地位。文章特别强调注释的重要性,详细说明了功能标注、参数说明等注释内容,并提出了"元件名称+引脚功能"的网络标签命名规范。这些内容为电子设计初学者提供了系统的原理图认知框架和实用设计方法。
2025-12-23 21:24:20
849
原创 【EDA学习笔记】电子技术基础知识:电路定理
文章摘要:本文系统阐述了电路原理图分析与设计的基础知识。首先介绍了原理图四要素:元件符号、连接线、结点和注释,重点说明网络标签的简化连接作用。其次定义了支路、回路和网孔三个电路核心概念,区分了独立回路与网孔的关系。然后讲解了集总参数电路的理想化假设及其适用条件。最后详细解析了基尔霍夫定律,包括电流定律(KCL)的结点电流守恒原理和电压定律(KVL)的回路电压平衡特性,强调二者分别体现电荷守恒和能量守恒定律,是电路分析的基本依据。全文通过具体示例说明了各概念的实际应用方法。
2025-12-23 21:10:16
1016
原创 【嵌入式学习笔记】GPIO与LED
摘要:本文详细介绍了STM32 GPIO基础知识与HAL库配置方法,重点分析了GPIO工作模式(输入/输出/模拟/备用功能)、输出类型(推挽/开漏)的特性差异及适用场景,并提供了LED控制的具体实现方案。文章包含完整的GPIO初始化流程说明,通过示例代码展示了如何使用HAL库实现LED显示控制,特别讲解了利用软件PWM实现呼吸灯效果的原理与实现方法。最后,文章对比了软件PWM与硬件PWM的优缺点,为开发者选择合适方案提供了参考依据。
2025-12-23 19:12:17
954
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅