0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么学习STM32? 如何系统地入门学习stm32呢?

STM32嵌入式开发 来源:STM32嵌入式开发 作者:STM32嵌入式开发 2020-11-20 10:20 次阅读

为什么学习STM32

在学习之前,不妨问一下自己这个问题,或许学起来能更加坚定,不至于轻易放弃。有目的性的去做事,更容易成功。

如何系统地入门学习stm32呢?

假如你用过51单片机,那么恭喜你,再学习STM32会容易很多。如果之前没接触过51,那也不用理会,直接学习STM32也行。

可以用STM32实现什么?为什么使用STM32而不是8051?

相对于STM32来说,51的频率太低、管脚太少、没有众多的外设IO、功耗太大、功能太弱、内存太小。

需要使用SPI、I2CADCDMA,需要使用STM32某些功能,而51实现不了的时候, 那么就需要学习STM32在这些方面的使用方法。比如SPI协议、串口通信RTOS等。

获取STM32基础知识

假定你已经对STM32有一定的理解。如不理解,请立即阅读我之前发的STM32入门系列文章,以获取最基本的知识点。

英文好的同学,请不要以为你很牛,可以只看英文文档。毕竟你是中国人,你最熟悉的,理解最好的还是中文。看英文的速度还是比看中文慢一些,我们要的是最短的时间,而不是追求短时间内记住所有细节。

STM32处理器进入国内市场时候,ST官方(或者第三方)的推广工作做得非常好。翻译了大量的英文文档,迎合了国内的很多工程师的思维。当然,如果是一篇论文,建议看英文原版还是有好处的。

针对有充足的时间、精力的同学,建议去下载需要查阅的文档,以获取更多信息。学习过程中,建议多关注两个比较重要的文档:《STM32F103xxx参考手册》,《STM32固件库使用手册》。希望您能从中获取大量的STM32基础知识。

阅读《STM32F103xxx参考手册》,一定要注意,不需要全部阅读——没有时间的。建议选读,但是前几章必读。存储器和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能I/O,中断和时间等等前几章一定要花时间阅读。后面章节,讲述的是具体的功能模块设计。如果我们用到哪个模块,就可以去阅读哪个模块。比如在使用AD的时候,就需要去阅读第10章ADC。其他不举例。相信每个初学者都有自己的研究方向和判断。

阅读《STM32固件库使用手册》,主要是为了简化编程。阅读《STM32固件库使用手册》的时候,前面几章也是必须阅读的。比如第一章文档和库规范中的命名规则,编码规则,这些都是需要注意的。第二章是最关键的,描述了固件库的架构,如何去使用固件库的步骤等。有了第二章的基础,我们就可以借助固件库写出自己的代码了。第四章开始之后,就可以根据大家的需要来阅读。实际上,后续的章节,都是描述某个模块有什么什么函数,每个函数如何使用等。建议对GPIO库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,因为平时经常会用到。

STM32给我们提供了一个非常好的固件函数库,我们只要去调用即可。当然,我们也可以不去碰这些固件库——传说使用它会使得代码效率变低,是有道理的。网络上也出现了很多网友自己写的代码,没有使用带固件库函数。如何取舍,在于您的选择。

为了执行起来更有效率,设定一个两周入门计划吧。

这里所谓的“入门”,指的是能理解并掌握一些常用的STM32外设,真正想掌握一款处理器,两周根本说明不了什么问题。只能说,你已经有所了解了。但是,这对我们初学者来说已经足够了。

这里所谓的“两周”,根据每个人的基础以及时间安排不同而异。

如果您每天有充足的时间学习,那么可以规定自己尽快地能独立地进行简单的STM32开发。如果您每天只有业余时间来学习STM32,建议根据您的具体情况安排时间。毕竟计划时间如果安排太紧,反而收不到良好的效果,只能进入恶性循环,这是我们要避免的。

但是建议,不管您有无充足的时间,都必须给自己做一个计划!

学习STM32的步骤

这里整理出一个学习步骤,仅供参考。

步骤一,安装完STM32学习的软件,比如J-Link、Keilfor ARM(MDK)、ISP(如果需要从串口下载的话)。这些软件安装的详细步骤,可以参考我们推出的相应教程进行。

步骤二,挑选部分例程的HEX,比如LED灯的例程HEX文件,下载到芯达STM32开发板中,观察两个LED灯的闪烁情况。这部分的操作,可以参考我们推出的相应的教程进行。

实际上,以上两个步骤,是为了熟悉要使用的工具软件而已。属于找感觉的阶段。其实我们还没开始STM32的学习呢!

步骤三,准备几个常用的文档,比如《STM32的用户手册》,《STM32固件库使用手册》等文档。用于平时查阅。这些文档,在光盘中的芯片手册目录中均可找到。

步骤四,开始查看例程的编写,看看例程是如何写的,自己可否修改下例程,达到自己想要的效果呢?

步骤五,Ucos-II的移植,是否需要试一下?

至此,你已经可以自如进行独立的开发了。

步骤六,也就是最后一步:给自己找一个项目,把它实现出来!

学习STM32时需要关注的两个东西

熟悉调试软件

对初学者来说,我们至少需要安装两个软件:J-Link驱动软件、MDK(就是原来的Keil)软件。

这两个软件在安装软件的过程可以查看神舟开发板用户手册,这里不再重复,大家可以参考我们推出的教程《如何安装J-Link驱动软件》以及《如何安装MDK(Keil)软件》。

如何验证自己已经熟悉调试软件的操作了呢?很简单,神舟STM32开发板光盘里附带了很多HEX格式的文件,可以选择一些HEX文件,来观察运行结果。

熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。

GPIO编程

这是第一次接触固件库的编程,一定要硬着头皮去了解固件库。建议大家尽量去用固件库。而不是避开固件库自己写代码——这样只能在学习中才会发生。实际的项目中,代码成百上千个,如何一个一个自己写?调用固件库中的函数来完成,才是王者之道。GPIO本身的编程实际上很简单:

设置GPIO口的引脚为输入或者输出模式。我们在进行点灯代码的时候,一般设置为推挽输出模式。

操作寄存器,往寄存器里置1或者清零操作——这个步骤,固件库已经提供了专门的GPIO_SetBits函数和GPIO_ResetBits函数,我们只要去调用即可实现对IO口的置1和清零。

实现多种花样的LED闪动,使得自己熟悉GPIO的编程过程。

STM32深入研究

对STM32有一定的了解,至少知道如何利用STM32的固件库去写一个代码。这个阶段之后,将要接触到串口编程、TFT液晶屏驱动编程、定时器编程、串行外设接口SPI编程、存储器编程、SD卡与文件系统移植、USB读写、UCOS移植等,有精力还可以研究其他外设。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2265

    文章

    10859

    浏览量

    354537
  • 串口通信
    +关注

    关注

    34

    文章

    1607

    浏览量

    55390
  • 函数库
    +关注

    关注

    1

    文章

    84

    浏览量

    32416

原文标题:大牛是这样学习STM32单片机的

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32单片机基于rt-thread 的 littlefs 文件系统 的使用

    作者:嵌入式学习和实践一、开发环境介绍硬件:基于野火stm32f407开发板软件:基于rt-threadv4.1.1版本的stm32f407-atk-explorerbsp工程。二、littlefs
    的头像 发表于 11-06 08:04 250次阅读
    <b class='flag-5'>stm32</b>单片机基于rt-thread 的 littlefs 文件<b class='flag-5'>系统</b> 的使用

    入门?毕设?竞赛?项目练手?STM32/嵌入式/物联网学习,有这几款开发板就够了!

    针对STM32单片机、嵌入式Linux、物联网初学者,我们精心梳理了从“入门到项目进阶”完整学习路径,并配有详细的教程、视频讲解、源代码以及丰富的实战案例资料。可广泛用于高校教学、学生毕设、个人
    的头像 发表于 10-10 16:31 247次阅读
    <b class='flag-5'>入门</b>?毕设?竞赛?项目练手?<b class='flag-5'>STM32</b>/嵌入式/物联网<b class='flag-5'>学习</b>,有这几款开发板就够了!

    初学STM32的常见误区与解决方法

    对于初学者来说,STM32是一种功能强大但也相对复杂的微控制器平台。许多人在学习了几天后,常常会感到困惑和迷茫。这种情况并不罕见,尤其是在缺乏扎实基础的情况下直接接触这样复杂的芯片。这篇文章旨在
    的头像 发表于 09-05 08:00 378次阅读
    初学<b class='flag-5'>STM32</b>的常见误区与解决方法

    第一篇:V1.5-STM32f103c8t6智能小车笔记 标准库开发 6612电机驱动新手入门项目

    这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章
    的头像 发表于 08-12 18:25 1465次阅读
    第一篇:V1.5-<b class='flag-5'>STM32</b>f103c8t6智能小车笔记 标准库开发 6612电机驱动新手<b class='flag-5'>入门</b>项目

    课程上线 | STM32单片机入门教程(1)基于HAL库的多核心开发(F1/F4/G0/U5)

    ​好消息!华清远见STM32入门视频课程《基于HAL库的STM32多核心开发》正式上线,已更新90讲,持续更新中,8月份将全部上线。课程优势真人出镜,手把手教学一板玩转STM32多型号
    的头像 发表于 08-08 16:42 300次阅读
    课程上线 | <b class='flag-5'>STM32</b>单片机<b class='flag-5'>入门</b>教程(1)基于HAL库的多核心开发(F1/F4/G0/U5)

    从菜鸟到大牛!嵌入式完整学习路线:STM32单片机-RTOS-Linux

    ​嵌入式系统是许多现代电子设备和智能系统的核心,掌握嵌入式系统,意味着能够设计和开发更加智能化的产品。本文为所有想进入嵌入式领域的初学者提供一个完整系统学习的路线图,按照“
    的头像 发表于 07-23 16:11 3448次阅读
    从菜鸟到大牛!嵌入式完整<b class='flag-5'>学习</b>路线:<b class='flag-5'>STM32</b>单片机-RTOS-Linux

    手把手教你!STM32单片机入门指南:从初级到中级工程师的学习路线

    首选的跳板。为了帮助初学者们系统学习STM32,我们提供了一条从初级到中级的学习路线,涵盖了从基础知识到进阶应用的全方位技能提升,最终助力初学者达到嵌入式
    的头像 发表于 07-22 14:38 2936次阅读
    手把手教你!<b class='flag-5'>STM32</b>单片机<b class='flag-5'>入门</b>指南:从初级到中级工程师的<b class='flag-5'>学习</b>路线

    新手必看!STM32单片机应该怎么学?从零基础入门到项目实战进阶学习路线

    STM32是意法半导体(ST)推出的一系列高性能、低功耗的微控制器与微处理器,涵盖基于ARMCortex-M和部分集成Cortex-A系列内核(如STM32MP1系列)的32位系统STM32
    的头像 发表于 07-16 10:47 1696次阅读
    新手必看!<b class='flag-5'>STM32</b>单片机应该怎么学?从零基础<b class='flag-5'>入门</b>到项目实战进阶<b class='flag-5'>学习</b>路线

    零死角玩转STM32-F1系列pdf

    一天入门STM32,仅一天的时间,是否有真的这么快。不同的人对入门的理解不一样,这篇一天入门STM32 的教程,我们先对
    发表于 06-18 09:24 4次下载

    stm32单片机学习路线

    第一步 编程及硬件基础知识 1.掌握C语言基础 作为STM32的主要编程语言,C语言的基础知识是必不可少的。建议通过书籍、在线课程或者教学视频系统学习C语言的基础知识,包括语法、数据类型
    发表于 05-10 15:34

    STM32电机控制SDK v5.0入门

    电子发烧友网站提供《STM32电机控制SDK v5.0入门.pdf》资料免费下载
    发表于 03-11 09:25 10次下载

    盘点那些硬件+项目学习套件:STM32U5单片机开发板及入门常见问题解答

    学习STM32U5开发板采用 手把手教学 ,配套了全套的开发教程、视频课程及丰富的项目案例,可广泛应用于STM32入门学习、项目练手、高校
    发表于 02-19 16:59

    盘点那些硬件+项目学习套件:STM32MP157 Linux开发板及入门常见问题解答

    STM32MP157开发板配套全体系学习资料。 • 嵌入式应用层学习路线:Linux基础与应用开发、QT界面开发、Qt综合项目实战,基础入门+项目实战; • 嵌入式底层
    发表于 02-01 14:25

    GD32和STM32有何区别?GD32如何替换STM32

    GD32和STM32有何区别?GD32如何替换STM32? GD32和STM32是两种不同的微控制器系列,一般被用于嵌入式系统开发。GD3
    的头像 发表于 11-22 18:18 5291次阅读

    51单片机C语言编程入门学习资料

    电子发烧友网站提供《51单片机C语言编程入门学习资料.pdf》资料免费下载
    发表于 11-18 11:04 14次下载
    51单片机C语言编程<b class='flag-5'>入门</b><b class='flag-5'>学习</b>资料