| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> stm32单片机学习秘籍(完整版) -> 正文阅读 |
|
[嵌入式]stm32单片机学习秘籍(完整版) |
大家好,我是华维麦琪,今天来分享下我们华维团队十年经验总结,如何能快速学好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.做物联网网关时会实时跟服务器进行心跳监测,在如此高频和数据量大的情况下,如何保证数据不丢包。 那解决这些问题所涉及到的技术点有回调函数、任务调度、队列算法等等,如果全部消化并且加以优化,足以写出可移植性和可扩展性非常强的程序。 这个程序架构是开源提供给大家的,包括视频教程+源码+工具。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:17:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |