jjzjj

入门STM32--怎么学习STM32

苦瓜人生 2024-05-22 原文

目录

前言

 一、STM32是什么?

 二、一些概念(不懂可能会被装到)

1.Soc芯片

2.MCU

3.FLASH

三、STM32的学习

1.51

2.学习方法

3.建议

四、学前准备

1.开发板

2.下载器

3.OLED/LCD

4.矩阵键盘



前言

首先说明,我自己是一名大学生,学习STM32也不是太久。有出入的地方希望大家包容一下。

写这些博客,是希望给自己留个念想,留下一段美好的回忆,也担心自己忘记也曾经为了32奋斗过。

一、STM32是什么?

官方的解释就是STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex-M0,M0+,M3, M4和M7内核。

前面的形容词我们知道就行,可能我们学习过程中可能也感觉不到。后面的内核什么的是什么意思呢?意思就是,我们的单片机里面中央处理器(CPU)的内核, 前面的M0、M3什么的是它的型号。

还有就是STM32的命名规则(可能对于学习使用来说没什么用,但了解一下总归是好的)

 最后说一下我自己的理解,大家在学习STM32的时候,可能手里已经有开发板了(正点原子系列、或者是普中的一些板子),这个上面提到的单片机就是你手里面的开发板最中心的那个稍微大一点的芯片,(让后别的公司在他的基础上,搭的外部电路,画出来,焊接好,就卖给你了)上卖弄有它的造型号还有上面的说的内核,也是在这个芯片里面。 

(最好在板子底部用绝缘胶布粘一下,可能会有点难看,)

 二、一些概念(不懂可能会被装到)

1.Soc芯片

Soc芯片是一个比较模糊的概念,比较难给出一个客观的概念。

Soc是“System on Chip”的缩写,又称为片上系统。从广义角度讲, SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。

芯片里面是集成电路,,可以被称为Soc集成电路(好像这句话有点多余,或许细品一下,你就能感觉到他的意思~~)。集成电路嘛,就是很多晶体管啥的。

2.MCU

MCU可能是你遇到的另一个概念,实际上单片机就是一个MCU(微控制器),它将整个计算机大部分甚至全部电路集成到一块芯片中,这里面就包括我们熟知的CPU。

它实际上就是集成在单个芯片上的小型计算机,由于在嵌入式应用中主要作为控制单元。所以人们习惯称之为微控制器。

3.FLASH

flash的官方解释我就不细说了,其实就是内存,存储一些数据、程序啥的。

三、STM32的学习

1.51

提到学习者开发板,可能很多同学都会听说,或者看到“51”这个名词,毕竟在32出来之前,它的地位非常高。

有些同学可能想从51入手,学完之后再来学习32,我感觉,如果你时间充足的话,其实完全可以,学过51的肯定入手32会更快。如果时间不是太充裕的话,直接学习也没有问题,我就是这么过来的。而且,学完32之后,再去学习51,直接起飞。

2.学习方法

可能有的同学适合看文档(一般是PDF),有的同学适合看视频。但是如果你在纠结看视频还是看文档的话,那就直接看视频吧,不要纠结了。

我建议先看视频,然后看文档。视频可以多看几遍,我当时候就看了好几遍,然后又过了一遍开发指南。

视频的话,就正点原子吧,可能也没别的,(可能我后面也会出视频,嘿嘿)

文档的话,STM32F1开发指南,STM32F1开发手册。

找不到,点这里。http://www.openedv.com/docs/index.html

3.建议

直接往死里卷就行了,没有别的办法。

多问别人,别不好意思。

多看博客,多看博客会有意想不到的收获。

其实还有一个办法,就是“拿来主义”(注意“合法”,避免矛盾),看透看懂,自己写一遍,进步飞速。(但是,程序这东西,一般不太愿意让别人看,一个程序就好像一个人的内裤,哪里有漏洞,自己明白就好)

四、学前准备

1.开发板

学习STM32前,肯定要有开发板,最近芯片一直涨钱,导致开发板也变得贵了起来。

正点原子、普中、优信电子、绿深电子都是可以的。

我当时学习用的是F103ZET6,买的是普中的一块板子,花了我一百多块,但是后来被我烧了,幸亏有一位好心的学长又给了我一个。当然还有其他型号,RCT6也是一个不错的选择,再便宜一点就是C8T6,三十多就可以拿下,不过买的时候要注意,尽量找有知名度的店,不然可能会买到坏的,会比较麻烦。()

可别买错了,我当时想买的是F103型号的,却买成了F407,最后好心的店家提醒,才在发货之前改了回来。感谢店家(大家随意)。

 

 

2.下载器

 可有可无,用线也可以下载。

但是花钱买了,肯定会有不一样的体验。

使用下载器下载程序会比较方便,直接在keil里面点就可以了,不用使用软件。

还有就是可以调试,方便Debug。(可能初学顾不上,以后买也可以)

最后就是,显得比较专业。

我比较推荐DAP下载器(别的类型我也没用过),三十多吧。(上波广告)

 

3.OLED/LCD

 OLED屏幕也是一个可能会用到的东西,初学比较建议使用OLED,后面可以买一个LCD(会显得花里胡哨)。买屏幕也要挑对厂家!!!

4.矩阵键盘

 买就完了,不吃亏,不上当。

最后说一句,后面也可以买,超声波测距模块、蓝牙模块、蜂鸣器啥的

第一次写博客,可能有不好的地方。后面我会把自己学过的东西,都写出来。

有关入门STM32--怎么学习STM32的更多相关文章

  1. ruby - Ruby 中的隐式返回值是怎么回事? - 2

    所以我开始关注ruby​​,很多东西看起来不错,但我对隐式return语句很反感。我理解默认情况下让所有内容返回self或nil但不是语句的最后一个值。对我来说,它看起来非常脆弱(尤其是)如果你正在使用一个不打算返回某些东西的方法(尤其是一个改变状态/破坏性方法的函数!),其他人可能最终依赖于一个返回对方法的目的并不重要,并且有很大的改变机会。隐式返回有什么意义?有没有办法让事情变得更简单?总是有返回以防止隐含返回被认为是好的做法吗?我是不是太担心这个了?附言当人们想要从方法中返回特定的东西时,他们是否经常使用隐式返回,这不是让你组中的其他人更容易破坏彼此的代码吗?当然,记录一切并给出

  2. ruby - 怎么来的(a_method || :other) returns :other only when assigning to a var called a_method? - 2

    给定以下方法:defsome_method:valueend以下语句按我的预期工作:some_method||:other#=>:valuex=some_method||:other#=>:value但是下面语句的行为让我感到困惑:some_method=some_method||:other#=>:other它按预期创建了一个名为some_method的局部变量,随后对some_method的调用返回该局部变量的值。但为什么它分配:other而不是:value呢?我知道这可能不是一件明智的事情,并且可以看出它可能有多么模棱两可,但我认为应该在考虑作业之前评估作业的右侧...我已经在R

  3. ruby-on-rails - 我该怎么办 :remote location validation with CarrierWave? - 2

    我在我的Rails3示例应用程序上使用CarrierWave。我想验证远程位置上传,因此当用户提交无效URL(空白或非图像)时,我不会收到标准错误异常:CarrierWave::DownloadErrorinImageController#createtryingtodownloadafilewhichisnotservedoverHTTP这是我的模型:classPaintingtrue,:length=>{:minimum=>5,:maximum=>100}validates:image,:presence=>trueend这是我的Controller:classPaintingsC

  4. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  5. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  6. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  7. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  8. 【Java入门】使用Java实现文件夹的遍历 - 2

    遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg

  9. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  10. ruby - EventMachine - 你怎么知道你是否落后了? - 2

    我正在研究使用EventMachine支持的twitter-streamruby​​gem来跟踪和捕获推文。我对整个事件编程有点陌生。我如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法? 最佳答案 您可以通过使用周期性计时器并打印出耗时来确定延迟。如果您使用的是1秒的计时器,您应该已经过了大约1秒,如果它更长,您就知道您正在减慢react器的速度。@last=Time.now.to_fEM.add_periodic_timer(1)doputs"LATENCY:#{Time.now.to_f-@last}"@

随机推荐