电控三周速成计划参考
第1周:基础搭建与GPIO控制
学习目标:建立开发环境,掌握最基础的硬件控制能力
每日学习(2-3小时):
- 环境搭建(2天)
- 安装Keil MDK-ARM + STM32CubeMX
- 使用CubeMX创建第一个工程(选择STM32F103C8T6)
- 生成代码并烧录到开发板(LED点亮验证)
- GPIO编程(3天)
- 推挽输出/开漏输出模式区别
- 使用
HAL_GPIO_WritePin()控制LED - 按键输入检测(轮询方式)
- 时钟系统(2天)
- 理解HSI/HSE/PLL时钟源
- 通过CubeMX配置72MHz系统时钟
- 调试技巧(1天)
- 使用
printf重定向到串口 - 基础断点调试
- 使用
核心掌握:
- 工程创建流程
- GPIO的8种工作模式
- 时钟树配置逻辑
- 基础调试方法
第2周:通信协议与常用外设
学习目标:掌握数据交互与传感器驱动
每日学习:
- USART串口(3天)
- 阻塞式发送/接收
- 中断接收模式
- 与PC通信(使用串口助手)
- ADC采集(2天)
- 单通道电压采集
- 多通道扫描模式
- 光敏电阻数据读取
- 定时器基础(3天)
- 定时中断配置
- 基本PWM输出
- 呼吸灯实现
- 项目框架(2天)
- 模块化编程技巧
- 状态机设计模式
核心掌握:
- 异步串口通信协议
- 模拟信号数字化处理
- 定时器中断与PWM生成
- 代码组织结构优化
第3周:中断系统与高级应用
学习目标:实现高效系统控制
每日学习:
- 中断系统(3天)
- EXTI外部中断配置
- NVIC优先级管理
- 按键中断消抖处理
- DMA传输(2天)
- 内存到外设数据传输
- ADC+DMA高效采集
- FreeRTOS基础(3天)
- 任务创建与调度
- 信号量/消息队列
- 多任务LED控制
- 低功耗模式(2天)
- STOP模式唤醒
- RTC闹钟中断
核心掌握:
- 中断嵌套与响应机制
- 零CPU占用的DMA传输
- 实时操作系统基础
- 功耗优化策略
实战项目路线(难度阶梯)
第1周项目:
- 智能呼吸灯(GPIO+PWM)
- 使用PWM实现亮度渐变
- 强化:定时器配置、占空比计算
- 电子骰子(GPIO+外部中断)
- 按键触发随机数生成
- 强化:中断消抖、LED数码管控制
第2周项目:
- 环境监测站(ADC+USART)
- 采集温湿度并串口输出
- 强化:传感器校准、数据格式化
- 无线门铃(定时器+中断)
- 通过433MHz模块实现远程触发
- 强化:RF解码、低功耗设计
第3周项目:
- 多任务数据记录仪(FreeRTOS+DMA)
- 同时记录GPS数据与环境参数
- 强化:SD卡存储、任务同步
学习资源包
- 速查手册:
- STM32CubeMX配置速查表
- HAL库函数速查手册
- 硬件推荐:
- 主控板:STM32F103C8T6(蓝色药丸)
- 传感器包:DHT11+光敏+MPU6050
- 调试工具:ST-Link V2 + 逻辑分析仪
- 调试技巧:
- 使用
SEGGER SystemView分析RTOS任务 - 通过
STM32CubeMonitor实时监测变量
- 使用
关键学习策略
- 逆向学习法:从CubeMX生成的代码反向理解寄存器配置
- 模块化开发:为每个外设创建独立的
.c/.h文件 - 版本控制:使用Git管理工程版本(每个项目一个分支)
- 硬件解剖:每周拆解一个经典开发板原理图
相关文章:
电控三周速成计划参考
第1周:基础搭建与GPIO控制 学习目标:建立开发环境,掌握最基础的硬件控制能力 每日学习(2-3小时): 环境搭建(2天) 安装Keil MDK-ARM STM32CubeMX使用CubeMX创建第一个工程…...
Ubuntu修改配置文件--编辑操作
例如。 1.打开 /etc/samba/smb.conf 该配置文件: sudo vi /etc/samba/smb.conf 2.当你运行sudo vi /etc/samba/smb.conf命令后,你需要按i键进入插入模式(Insert Mode)。这时,在屏幕底部你应该能看到“-- INSERT --”…...
2021版小程序开发5——小程序项目开发实践(1)
2021版小程序开发5——小程序项目开发实践(1) 学习笔记 2025 使用uni-app开发一个电商项目; Hbuidler 首选uni-app官方推荐工具:https://www.dcloud.io/hbuilderx.htmlhttps://dev.dcloud.net.cn/pages/app/list 微信小程序 管理后台:htt…...
二分/双指针/单调栈队列专题
1.4924. 矩阵 - AcWing题库 一开始打表找规律以为是右上角向左下角递增,但当n很大的时候就不对了,因此我们得去观察 i * i 100000 * (i - j) j * j i * j 这个式子,我们关心的是这个式子的单调性因此我们可以分别将i和j看作常数来对式子进行求导,可以得到 f(i) 2 * i 10…...
XCCL、NCCL、HCCL通信库
XCCL提供的基本能力 XCCL提供的基本能力 不同的XCCL 针对不同的网络拓扑,实现的是不同的优化算法的(不同CCL库最大的区别就是这) 不同CCL库还会根据自己的硬件、系统,在底层上面对一些相对应的改动; 但是对上的API接口…...
【Deep Seek本地化部署】模型实测:规划求解python代码
目录 前言 一、实测 1、整数规划问题 2、非线性规划问题 二、代码正确性验证 1、整数规划问题代码验证 2、非线性规划问题代码验证 三、结果正确性验证 1、整数规划问题结果正确性验证 2、非线性规划问题正确性验证 四、整数规划问题示例 后记 前言 模型ÿ…...
MySQL锁类型(详解)
锁的分类图,如下: 锁操作类型划分 读锁 : 也称为共享锁 、英文用S表示。针对同一份数据,多个事务的读操作可以同时进行而不会互相影响,相互不阻塞的。 写锁 : 也称为排他锁 、英文用X表示。当前写操作没有完成前,它会…...
搜索插入位置(35)
35. 搜索插入位置 - 力扣(LeetCode) 相关算法:二分查找最左侧和最右侧target的index-CSDN博客 class Solution { public:int searchInsert(vector<int>& nums, int target) {int left 0;int right nums.size() - 1;int ans nu…...
八. Spring Boot2 整合连接 Redis(超详细剖析)
八. Spring Boot2 整合连接 Redis(超详细剖析) 文章目录 八. Spring Boot2 整合连接 Redis(超详细剖析)2. 注意事项和细节3. 最后: 在 springboot 中 , 整合 redis 可以通过 RedisTemplate 完成对 redis 的操作, 包括设置数据/获取数据 比如添加和读取数据 具体整…...
VDSuit-Full惯性动捕设备:高效率、高品质动画制作的利器
惯性动捕设备作为动画制作领域的新兴技术,与传统的关键帧动画制作相比,可以大大的缩短制作周期为创作者们提供极大便利。传统方式下,动画师需要逐帧调整角色动作,耗时费力。而惯性动捕设备能实时捕捉演员的动作,几乎瞬…...
【环境搭建】1.1源码下载与同步
目录 写在前面 一,系统要求 二,安装depot_tools 三,获取代码 四,代码同步 五,代码结构 写在前面 当前的开发背景是基于Google的开源Chromium,来开发Android设备的浏览器方案。 一,系统要…...
开源智慧园区管理系统对比其他十种管理软件的优势与应用前景分析
内容概要 在当今数字化快速发展的时代,园区管理软件的选择显得尤为重要。而开源智慧园区管理系统凭借其独特的优势,逐渐成为用户的新宠。与传统管理软件相比,它不仅灵活性高,而且具有更强的可定制性,让各类园区&#…...
C语言可变参数
在C语言中,处理可变参数(Variable Arguments)主要依赖于 <stdarg.h> 头文件中的一组宏定义。 以下是详细讲解和示例: 声明可变参数函数:使用 ... 表示可变参数 访问参数:通过 va_list 类型和配套宏…...
(1)Linux高级命令简介
Linux高级命令简介 在安装好linux环境以后第一件事情就是去学习一些linux的基本指令,我在这里用的是CentOS7作演示。 首先在VirtualBox上装好Linux以后,启动我们的linux,输入账号密码以后学习第一个指令 简介 Linux高级命令简介ip addrtou…...
frida 入门
一直想学 frida 一直鸽,终于有 ctf 用到了,我测东西这么多 官方文档感觉写的依托,这 python rpc 直接拿来入门真的太有生活了 frida 是一个动态插桩 (dynamic instrumentation) 工具,提供了交互式 cli 界面来追踪函数行为。用人话…...
基于STM32的智能健康监测手环
1. 引言 随着可穿戴设备的普及,健康监测技术正逐步融入日常生活。本文设计了一款基于STM32的智能健康监测手环,能够实时采集用户心率、血氧饱和度、体温及运动数据,并通过低功耗蓝牙(BLE)与手机APP交互。该系统结合了…...
neo4j-community-5.26.0 install in window10
在住处电脑重新配置一下neo4j, 1.先至官方下载 Neo4j Desktop Download | Free Graph Database Download Neo4j Deployment Center - Graph Database & Analytics 2.配置java jdk jdk 21 官网下载 Java Downloads | Oracle 中国 path: 4.查看java -version 版本 5.n…...
Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 循环类型】
文章目录 一、Shell 循环类型二、Shell while 循环三、Shell for 循环四、Shell until 循环五、Shell select 循环六、总结 一、Shell 循环类型 循环是一个强大的编程工具,使您能够重复执行一组命令。在本教程中,您将学习以下类型的循环 Shell 程序&…...
WAWA鱼2024年终总结,关键词:成长
前言 本来想着偷懒一下,不写2024年终总结了,因为24年上半年还在忙毕业,下半年在忙转正,其实没什么太多好写的。结果被an_da和学弟催更了,哈哈哈,感谢大家对我近况的关注,学校内容基本都忘的差不…...
【Redis】hash 类型的介绍和常用命令
1. 介绍 Redis 中存储的 key-value 本身就是哈希表的结构,存储的 value 也可以是一个哈希表的结构 这里每一个 key 对应的一个 哈希类型用 field-value 来表示 2. 常用命令 命令 介绍 时间复杂度 hset key field value 用于设置哈希表 key 中字段 field 的值为…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
Python 高效图像帧提取与视频编码:实战指南
Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...
