当前位置: 首页 > news >正文

电控三周速成计划参考

第1周:基础搭建与GPIO控制

学习目标:建立开发环境,掌握最基础的硬件控制能力
每日学习(2-3小时):

  1. 环境搭建(2天)
    • 安装Keil MDK-ARM + STM32CubeMX
    • 使用CubeMX创建第一个工程(选择STM32F103C8T6)
    • 生成代码并烧录到开发板(LED点亮验证)
  2. GPIO编程(3天)
    • 推挽输出/开漏输出模式区别
    • 使用HAL_GPIO_WritePin()控制LED
    • 按键输入检测(轮询方式)
  3. 时钟系统(2天)
    • 理解HSI/HSE/PLL时钟源
    • 通过CubeMX配置72MHz系统时钟
  4. 调试技巧(1天)
    • 使用printf重定向到串口
    • 基础断点调试

核心掌握

  • 工程创建流程
  • GPIO的8种工作模式
  • 时钟树配置逻辑
  • 基础调试方法

第2周:通信协议与常用外设

学习目标:掌握数据交互与传感器驱动
每日学习

  1. USART串口(3天)
    • 阻塞式发送/接收
    • 中断接收模式
    • 与PC通信(使用串口助手)
  2. ADC采集(2天)
    • 单通道电压采集
    • 多通道扫描模式
    • 光敏电阻数据读取
  3. 定时器基础(3天)
    • 定时中断配置
    • 基本PWM输出
    • 呼吸灯实现
  4. 项目框架(2天)
    • 模块化编程技巧
    • 状态机设计模式

核心掌握

  • 异步串口通信协议
  • 模拟信号数字化处理
  • 定时器中断与PWM生成
  • 代码组织结构优化

第3周:中断系统与高级应用

学习目标:实现高效系统控制
每日学习

  1. 中断系统(3天)
    • EXTI外部中断配置
    • NVIC优先级管理
    • 按键中断消抖处理
  2. DMA传输(2天)
    • 内存到外设数据传输
    • ADC+DMA高效采集
  3. FreeRTOS基础(3天)
    • 任务创建与调度
    • 信号量/消息队列
    • 多任务LED控制
  4. 低功耗模式(2天)
    • STOP模式唤醒
    • RTC闹钟中断

核心掌握

  • 中断嵌套与响应机制
  • 零CPU占用的DMA传输
  • 实时操作系统基础
  • 功耗优化策略

实战项目路线(难度阶梯)

第1周项目
  1. 智能呼吸灯(GPIO+PWM)
    • 使用PWM实现亮度渐变
    • 强化:定时器配置、占空比计算
  2. 电子骰子(GPIO+外部中断)
    • 按键触发随机数生成
    • 强化:中断消抖、LED数码管控制
第2周项目
  1. 环境监测站(ADC+USART)
    • 采集温湿度并串口输出
    • 强化:传感器校准、数据格式化
  2. 无线门铃(定时器+中断)
    • 通过433MHz模块实现远程触发
    • 强化:RF解码、低功耗设计
第3周项目
  1. 多任务数据记录仪(FreeRTOS+DMA)
    • 同时记录GPS数据与环境参数
    • 强化:SD卡存储、任务同步

学习资源包

  1. 速查手册
    • STM32CubeMX配置速查表
    • HAL库函数速查手册
  2. 硬件推荐
    • 主控板:STM32F103C8T6(蓝色药丸)
    • 传感器包:DHT11+光敏+MPU6050
    • 调试工具:ST-Link V2 + 逻辑分析仪
  3. 调试技巧
    • 使用SEGGER SystemView分析RTOS任务
    • 通过STM32CubeMonitor实时监测变量

关键学习策略

  1. 逆向学习法:从CubeMX生成的代码反向理解寄存器配置
  2. 模块化开发:为每个外设创建独立的.c/.h文件
  3. 版本控制:使用Git管理工程版本(每个项目一个分支)
  4. 硬件解剖:每周拆解一个经典开发板原理图

相关文章:

电控三周速成计划参考

第1周:基础搭建与GPIO控制 学习目标:建立开发环境,掌握最基础的硬件控制能力 每日学习(2-3小时): 环境搭建(2天) 安装Keil MDK-ARM STM32CubeMX使用CubeMX创建第一个工程&#xf…...

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、非线性规划问题正确性验证 四、整数规划问题示例 后记 前言 模型&#xff…...

MySQL锁类型(详解)

锁的分类图,如下: 锁操作类型划分 读锁 : 也称为共享锁 、英文用S表示。针对同一份数据,多个事务的读操作可以同时进行而不会互相影响,相互不阻塞的。 写锁 : 也称为排他锁 、英文用X表示。当前写操作没有完成前,它会…...

搜索插入位置(35)

35. 搜索插入位置 - 力扣&#xff08;LeetCode&#xff09; 相关算法&#xff1a;二分查找最左侧和最右侧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. 最后&#xff1a; 在 springboot 中 , 整合 redis 可以通过 RedisTemplate 完成对 redis 的操作, 包括设置数据/获取数据 比如添加和读取数据 具体整…...

VDSuit-Full惯性动捕设备:高效率、高品质动画制作的利器

惯性动捕设备作为动画制作领域的新兴技术&#xff0c;与传统的关键帧动画制作相比&#xff0c;可以大大的缩短制作周期为创作者们提供极大便利。传统方式下&#xff0c;动画师需要逐帧调整角色动作&#xff0c;耗时费力。而惯性动捕设备能实时捕捉演员的动作&#xff0c;几乎瞬…...

【环境搭建】1.1源码下载与同步

目录 写在前面 一&#xff0c;系统要求 二&#xff0c;安装depot_tools 三&#xff0c;获取代码 四&#xff0c;代码同步 五&#xff0c;代码结构 写在前面 当前的开发背景是基于Google的开源Chromium&#xff0c;来开发Android设备的浏览器方案。 一&#xff0c;系统要…...

开源智慧园区管理系统对比其他十种管理软件的优势与应用前景分析

内容概要 在当今数字化快速发展的时代&#xff0c;园区管理软件的选择显得尤为重要。而开源智慧园区管理系统凭借其独特的优势&#xff0c;逐渐成为用户的新宠。与传统管理软件相比&#xff0c;它不仅灵活性高&#xff0c;而且具有更强的可定制性&#xff0c;让各类园区&#…...

C语言可变参数

在C语言中&#xff0c;处理可变参数&#xff08;Variable Arguments&#xff09;主要依赖于 <stdarg.h> 头文件中的一组宏定义。 以下是详细讲解和示例&#xff1a; 声明可变参数函数&#xff1a;使用 ... 表示可变参数 访问参数&#xff1a;通过 va_list 类型和配套宏…...

(1)Linux高级命令简介

Linux高级命令简介 在安装好linux环境以后第一件事情就是去学习一些linux的基本指令&#xff0c;我在这里用的是CentOS7作演示。 首先在VirtualBox上装好Linux以后&#xff0c;启动我们的linux&#xff0c;输入账号密码以后学习第一个指令 简介 Linux高级命令简介ip addrtou…...

frida 入门

一直想学 frida 一直鸽&#xff0c;终于有 ctf 用到了&#xff0c;我测东西这么多 官方文档感觉写的依托&#xff0c;这 python rpc 直接拿来入门真的太有生活了 frida 是一个动态插桩 (dynamic instrumentation) 工具&#xff0c;提供了交互式 cli 界面来追踪函数行为。用人话…...

基于STM32的智能健康监测手环

1. 引言 随着可穿戴设备的普及&#xff0c;健康监测技术正逐步融入日常生活。本文设计了一款基于STM32的智能健康监测手环&#xff0c;能够实时采集用户心率、血氧饱和度、体温及运动数据&#xff0c;并通过低功耗蓝牙&#xff08;BLE&#xff09;与手机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 循环类型 循环是一个强大的编程工具&#xff0c;使您能够重复执行一组命令。在本教程中&#xff0c;您将学习以下类型的循环 Shell 程序&…...

WAWA鱼2024年终总结,关键词:成长

前言 本来想着偷懒一下&#xff0c;不写2024年终总结了&#xff0c;因为24年上半年还在忙毕业&#xff0c;下半年在忙转正&#xff0c;其实没什么太多好写的。结果被an_da和学弟催更了&#xff0c;哈哈哈&#xff0c;感谢大家对我近况的关注&#xff0c;学校内容基本都忘的差不…...

【Redis】hash 类型的介绍和常用命令

1. 介绍 Redis 中存储的 key-value 本身就是哈希表的结构&#xff0c;存储的 value 也可以是一个哈希表的结构 这里每一个 key 对应的一个 哈希类型用 field-value 来表示 2. 常用命令 命令 介绍 时间复杂度 hset key field value 用于设置哈希表 key 中字段 field 的值为…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...