stm32单片机学习秘籍(完整版)

2023-05-16

大家好,我是华维麦琪,今天来分享下我们华维团队十年经验总结,如何能快速学好stm32单片机!

最近看到很多小伙伴学STM32学的一脸懵逼,有些甚至学1年都不会,有些虽然学会了外设使用,一做起项目来无从下手,感觉自己学了个寂寞,白白浪费时间!

现在随便在招聘平台上搜索单片机开发或者嵌入式开发,基本都要求会STM32。我用STM32也有很多年了,基本上是围绕着F103、F030系列来做产品,对这个芯片的学习深有感触。

很多新手入门stm32都感觉很复杂,几百个寄存器,复杂的内核结构,详细的数据手册都几百页。这个过程需要通过合适的方法跨越。

由于STM32的功能多,其原理又与传统的8位单片机完全不同,再加上软件是基于固件库开发,其中涉及到了大量的结构体、枚举、指针的应用。

STM32是意法半导体较早推向市场的基于Cortex-M内核的微处理器系列产品,系列产品具有成本低、功耗优、性能高、功能多等优势,并且以系列化方式推出,方便用户选型,在市场上获得了广泛好评,深受广大工程师和企业的喜爱。

今天结合自己经历和经验,来跟大家分享下自己曾经是怎么快速学会stm32的!字数可能有点多,你一定坚持看下去,将会收益终身!

我自学完51单片机就出去找工作了,2011年的夏天,很多科技公司对这个职位的要求还不高,会51会改程序基本就能找到工作。那个时候STC单片机比较多,做的是MF卡的权限控制板,之后陆续接触了TFT产品,也用到了NXP,这应该是第一次与32位ARM7的邂逅,比51还复杂,当时我是一头雾水!

后来听隔壁的同事推荐下,我去学习了stm32单片机,果然32条线开发周期短,用起来省时省力!我总结了当时学习的主要经验如下,如果坚持下去说不定能从菜鸟到牛人达成质的飞跃!(偷偷告诉你,我是私下自学的)

一、一周入门计划

这里所谓的“入门”,指的是能理解并掌握一些常用的STM32外设,真正想真正掌握一款处理器,一周根本说明不了什么问题。

1.大胆去做,不怕犯错,一回生二回熟,总结经验,举一反三

我当时踩了好多坑,不爱看数据手册,都是直接复制例程看效果,当时特别憋屈,复制过来 还翻译错!不断地尝试看到例程效果以后,就会去改这个例程的外设配置,比如说例程是控制PA1引脚的灯闪烁,那我会改成PB2,PC2或者其他测试下。

比如说例程定时器1中断是10ms,那我换一个定时器2中断20ms,这样去测试。一周之后你会发现很多东西迎刃而解,学习stm32单片机是多么快乐!

另外我是下班时间慢慢钻研的,如果您每天只有业余时间来学习STM32,建议根据您的具体情况安排时间。毕竟计划时间如果安排太紧,反而收不到良好的效果,只能进入恶性循环,这是我们要避免的。

2.会用就行,不要深挖

单片机博大精深,正是因为这样要根据实际情况来定,记着我们学单片机的目的是产品开发,把产品的外设跑起来,并且知道怎么修改就好了,经验是慢慢积累的,切勿操之过急!

如果你照着例程都不会用的话,很有可能你是没学过51单片机,内部结构和功能部件的特点和属性你都懵懵懂,我劝你还是别浪费时间了!还是把时间用在学习51单片机上,继续关注我的文章,我会总结出一篇学习stm32单片机的基础经验,帮助你们快速上手stm32单片机,减少不必要的时间!

二.两周进阶

进阶最快的方法就是去接触实际产品开发!等你掌握一些常用的STM32外设,接下来就是进阶阶段,大多数人在这个阶段提升是最慢的,主要有如下原因!

1.新手没办法进行实际产品开发,即使接触也是参与项目边缘化的工作,无法学到核心内容!

2.没有人带,经验不足和产品思维没办法提升

3.市面上教程都是开发板多,真正接近实际产品的学习板非常少。

所以很多新手,特别是应届生有一个很普遍的现象,接触不到实际产品开发,找工作像个小白,找不到工作就很多人放弃转行了!

对于进阶这块,我在19年尝试针对这种情况录制了一套视频,计划只是录出来玩一下的。

内容主要手把手教你写一个轻量级的时间片轮训操作系统,也可以理解成是一个程序架构。

图片

图片

图片

在这个架构的基础上,我提供在产品开发当中,经常会碰到的一些疑难杂症的解决方法,比如说。

1.如果一个产品有10个甚至更多按键需要同时检测短按、短按释放、长按、长按释放动作的时候,代码怎么写可扩展性更强?

2.如果有10个甚至100个LED灯,要怎么实现每个灯独立的效果,比如说慢闪、快闪、隔3快闪2次,隔5秒快闪1次等等。

3.做物联网网关时会实时跟服务器进行心跳监测,在如此高频和数据量大的情况下,如何保证数据不丢包。

那解决这些问题所涉及到的技术点有回调函数、任务调度、队列算法等等,如果全部消化并且加以优化,足以写出可移植性和可扩展性非常强的程序。

免费领,单片机入门到高级开挂学习攻略(附教程+工具)icon-default.png?t=LBL2https://blog.csdn.net/HWdanpianji/article/details/121722883?spm=1001.2014.3001.5502

这个程序架构是开源提供给大家的,包括视频教程+源码+工具。

图片

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stm32单片机学习秘籍(完整版) 的相关文章

  • 《视觉SLAM十四讲》 编译报错问题汇总 Ubuntu20.04

    Ubuntu 20虚拟机环境安装 高翔原视频是ubuntu14 04 xff0c 看了一下 xff0c 有很多库都有兼容问题 xff0c 所以初步按这个Ubuntu 20装 xff1a 这个教程是ubuntu20的 用ubuntu14会不兼
  • C语言结构体(struct)常见使用方法

    目录 结构体声明与定义 结构体变量及其内部成员变量的定义及访问 引用 xff08 C 43 43 xff09 指针和数组 结构体嵌套 结构体与函数传参 占用内存空间 变长结构体 基本定义 xff1a 结构体 xff0c 通俗讲就像是打包封装
  • 如何禁止STL map 自动排序

    最近在做一个SPC SQC 的项目 其中有一处用到了stl map 得到了一个小小的心得 xff0c 分享给大家 我们知道 xff0c 在向map中插入数据对时候 xff0c map中的元素将按照一定的顺序被插入到对应的节点上 xff0c
  • 关于buffer overflow detected 程序崩溃的思考

    我是在使用别人源码 xff08 DBT2 benchmark xff09 的时候 xff0c 编译成功然后运行就出现了这个问题 本以为像这种开源的软件应该没什么太明显的bug xff0c 但是后来细想 xff0c buffer overfl
  • 安卓微信自动抢红包插件优化和实现

    转载请注明作者AndroidMSky和链接http blog csdn net AndroidMsky article details 53490459 又是兴趣系列 网上有很多自动强红包的例子和代码 xff0c 笔者也是做了一些优化 先说
  • 串口通信的基本知识

    串口通信的基本知识 前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 分享一下给大家 点击跳转到教程 本文介绍了串口通讯的基本概念 数据格式 通讯方式 典型的串口通讯标准等内容 串口通讯 xff
  • 【毕业设计】深度学习YOLO图像视频足球和人体检测 - python opencv

    1 前言 x1f6a9 深度学习YOLO图像视频足球和人体检测 x1f947 学长这里给一个题目综合评分 每项满分5分 难度系数 xff1a 3分工作量 xff1a 3分创新点 xff1a 5分 x1f9ff 选题指导 项目分享 xff1a
  • 【C语言编程入门系列】—— 第三章,编写第一个C语言程序!

    导读 xff1a 一般学一门计算机语言的第一堂上机课 xff08 上机 顾名思义 xff0c 上计算机 xff0c 机你太美 xff09 xff0c 就是往屏幕输出 hello world xff0c 本章也不例外 3 1 Hello Wo
  • 基于PCNTL的PHP并发编程

    原创文章 xff0c 转载请注明出处 xff1a http huyanping sinaapp com p 61 178 作者 xff1a Jenner PHP是一门较早出现的WEB开发脚本语言 xff0c 并由于其语法结构简单 易学 开源
  • 基于Redis的MessageQueue队列封装

    原创文章 xff0c 转载请注明出处 xff1a http www huyanping cn p 61 275 作者 xff1a Jenner Redis的链表List可以用来做链表 xff0c 高并发的特性非常适合做分布式的并行消息传递
  • 基于PHP的crontab定时任务管理

    BY JENNER 2014年11月10日 阅读次数 xff1a 6 linux的crontab一直是服务器运维 业务开展的利器 但当定时任务增多时 xff0c 管理和迁移都变得很麻烦 xff0c 而且容易出问题 下面提供了一个使用php编
  • PHP模拟SQL的GROUP BY算法

    BY JENNER 2015年1月24日 阅读次数 xff1a 25 github地址 xff1a https github com huyanping Zebra PHP ArrayGroupBy packagist地址 xff1a ht
  • flume:支持重命名、移动文件的roll file sink升级版

    原创文章 xff0c 转载请注明 xff1a 转载自始终不够 本文链接地址 flume xff1a 支持重命名 移动文件的roll file sink升级版 转载请注明 xff1a 始终不够 flume xff1a 支持重命名 移动文件的r
  • wordpress全栈优化

    原创文章 xff0c 转载请注明 xff1a 转载自始终不够 本文链接地址 wordpress全栈优化 转载请注明 xff1a 始终不够 wordpress全栈优化 从最开始计算 xff0c 始终不够 个人博客上线已经有两年多了 从最开始就
  • 递归与循环

    原创文章 xff0c 转载请注明 xff1a 转载自始终不够 本文链接地址 递归与循环 转载请注明 xff1a 始终不够 递归与循环 大一学C 43 43 的时候 xff0c 老师说过递归与循环是可以相互转化的 xff0c 当时好像是用来两
  • 安卓仿知乎个人主页,实现嵌套滑动和渐隐效果

    本篇文章已经授权微信公共号guolin blog 郭霖 独家发布 转载请注明作者AndroidMsky和出处 http blog csdn net AndroidMsky article details 53784984 本文github
  • PHP异步编程简述

    概述 异步编程 xff0c 我们从字面上理解 xff0c 可以理解为代码非同步执行的 异步编程可以归结为四种模式 xff1a 回调 事件监听 发布 订阅 promise模式 我们最熟悉的两种模式是回调和事件监听 xff0c 举两个最简单的j
  • CSV是什么文件格式

    CSV 即 Comma Separate Values xff0c 这种文件格式经常用来作为不同程序之间的数据交互的格式 具体文件格式 每条记录占一行 以逗号为分隔符 逗号前后的空格会被忽略 字段中包含有逗号 xff0c 该字段必须用双引号
  • 写给4年前开始编程序的自己

    最近在网上看到有人写了一篇关于 写给4年前没有开始做设计的自己 xff0c 突然也想写这样一篇文章 具体那篇文章的内容我并没有细读 xff0c 防止自己的思路照着他的来 首先 xff0c 我先简单介绍下自己 xff0c 好为后面的内容做一个
  • STM32单片机(七). USART串口、IIC和CAN通信

    在简单的学习过了STM32中的简单外设以及中断系统后 xff0c 在本章节中开始介绍STM32芯片中各个通信接口的配置 在计算机中 xff0c 按数据传输方式可分为串行通信以及并行通信 xff1b 按数据同步方式可分为异步通信和同步通信 x

随机推荐

  • VINS-Mono论文笔记(中)

    VINS Mono论文笔记 中 前言1 初始化过程1 1 视觉重构1 2 视觉惯性联合 2 紧耦合的单目VIO系统2 1 公式2 2 imu残差2 3 视觉残差2 4 边缘化残差2 5 针对相机实时帧率的纯运动视觉惯性状态估计器2 6 im
  • Qt生成exe文件并成功运行

    Qt程序写完后 xff0c 想要生成一个exe文件 xff0c 那么可以参考以下方法 工具 xff1a Qt5 9 9 我们以程序2048为例 将左下角debug改为release xff0c 然后点击左侧 项目 xff0c 找到build
  • 【Qt入门第二篇】基础(二)编写Qt多窗口程序

    导语 程序要实现的功能是 xff1a 程序开始出现一个对话框 xff0c 按下按钮后便能进入主窗口 xff0c 如果直接关闭这个对话框 xff0c 便不能进入主窗口 xff0c 整个程序也将退出 当进入主窗口后 xff0c 我们按下按钮 x
  • Qt之统一的UI界面格式基调,漂亮的UI界面

    今天主要谈谈Qt UI界面统一样式 格式基调 的问题 xff1b 例如在window系统上 xff0c 几乎所有的窗口都有标题栏和状态栏以及中央部件 xff0c 而且每一个标题栏和状态栏以及中央部件样式都保持一致的 xff1b 但是在实际开
  • qt plaintextedit使用_qt获取lineedit的内容

    QLineEdit和QTextEdit都是文本框类 xff0c QLineEdit类是单行文本框控件 xff0c 可以输入单行字符串 QTextEdit类是多行文本框控件 xff0c 可以显示多行文本内容 xff0c 当文本内容超出控件显示
  • Qt实现表格控件

    一 概述 最近在研究QTableView支持多级表头的事情 xff0c 百度了下网上资料还是挺多的 实现的方式总的来说有2种 xff0c 效果都还不错 xff0c 最主要是搞懂其中的原理 xff0c 做到以不变应万变 实现多级表头的方式有以
  • 从h5调起原生APP到自己调起知乎页面

    转载请注明作者AndroidMsky和出处 xff1a http blog csdn net AndroidMsky article details 54316327 效果 xff1a 这篇算兴趣加技术篇 xff0c 和之前的抢红包博文和接
  • Qt经验-按钮长按事件分析

    引言 最近在做qt项目 xff0c 需要对button按钮添加一个长按事件 xff08 比如点击按钮 xff0c 开始运动 松开按钮 xff0c 运动停止 xff09 查了些许资料 xff0c xff08 差点误把QPushButton的p
  • Qt开发-鼠标事件

    引言 个人认为 xff0c 事件机制是Qt最难以理解且最为精妙的一部分 事件主要分为两种 xff1a 在与用户交互时发生 比如按下鼠标 xff08 mousePressEvent xff09 xff0c 敲击键盘 xff08 keyPres
  • Qt Creator工具介绍与使用

    如今 Qt Creator 功能十分强大了 xff0c 包含项目模板生成 代码编辑 UI 设计 QML 界面编辑 调试程序 上下文帮助等丰富功能 xff0c 本文就详细的介绍一下如何使用 Qt 在很长的一段时间内都没有自己的开发环境 xff
  • Qt 封装HTTP网络工具类HttpClient

    一 前言 Qt 使用 QNetworkAccessManager 访问网络 xff0c 这里对其进行了简单的封装 xff0c 访问网络的代码可以简化为 1 GET 请求无参数 HttpClient 34 http localhost 808
  • Qt——线程与定时器

    一 定时器QTimer类 The QTimer class provides repetitive and single shot timers The QTimer class provides a high level programm
  • MQTT连接阿里云IoT

    我们先来看看官方提供的MQTT连接说明 xff0c 如下 xff1a 根据该文档 xff0c 我们大致了解了各个参数的封装方式 xff0c 那么接下来我们就通过QtMqtt的接口来传入这些参数并连接到阿里云IOT 代码片段 来看一些基本的参
  • Qt小程序之QQ登录窗口输入框控件

    代码之路 整体思路即根据focusInEvent和focusOutEvent事件判断焦点是否在输入框中 xff0c 同时重写setPlaceholderText方法 xff0c 把最开始设置的占位字符保存下来 xff0c 然后焦点进入的时候
  • Qt 自定义日志类

    一 前言 C 43 43 中比较不错的日志工具有 log4cxx xff0c log4qt 等 xff0c 但是它们都不能和 qDebug qInfo 等有机的结合在一起 xff0c 所以在 Qt 中使用总觉得不够舒服 xff0c 感谢 Q
  • 在Qt程序中使用C++11线程std::thread处理耗时操作

    Qt界面程序通常什么情况下要使用到线程 xff1f Qt界面程序在调用接口处理时间较长的任务时 如连接网络 复制文件等等耗时操作 xff0c 界面在等待接口返回前会导致卡死 为了不让界面卡死 xff0c 可以使用一个子线程来处理耗时任务 x
  • 学习stm32单片机,必备工具和软件,你知道几个?

    大家好 xff0c 我是华维的麦琪 今天给大家介绍下 xff0c 学习stm32需要用到那些硬件和软件 xff0c 对于学习stm32单片机的学习者 xff0c 要添置必要的学习和开发工具 xff0c 搭建一个最基本的学习平台 xff0c
  • 关于android UI适配的一些思考

    作为前端工程师 xff0c 界面效果 xff0c 效率 肯定是第一要务 面对安卓庞大的机型和屏幕对开发者的要求也就越来越高了 今天笔者就自己对UI适配的一些经验进行一个简短的总结 1 关于xml中写死dp的思考 首先我们应该先把问题抛出 x
  • 单片机编程用什么软件?单片机开发软件有哪些?华维告诉你.

    大家好 xff0c 我是华维 最近有小伙伴问我单片机编程用哪些软件 xff0c 结合我工作10年单片机经验 xff0c 在此回答一下大家的问题 单片机编程软件有很多 xff0c 什么protues仿真 Labview Pycharm等等 x
  • stm32单片机学习秘籍(完整版)

    大家好 xff0c 我是华维麦琪 xff0c 今天来分享下我们华维团队十年经验总结 xff0c 如何能快速学好stm32单片机 xff01 最近看到很多小伙伴学STM32学的一脸懵逼 xff0c 有些甚至学1年都不会 xff0c 有些虽然学