Advertisement

proteus里面没有stm32怎么办_STM32难不难,如何学习?这几点老司机建议,你得好好收藏!...

阅读量:

单片机用处这么广,尤其是STM32,这么火!如何快速上手学习呢?

避免学习STM32并非建议的做法。虽然 STM32 本身并非劣质产品或不合适的选择(如用于开发微控制器时),但这种为了学习单片机而采取的学习方式是不正确的。

你问,如何系统地入门学习stm32?

这本身就是个错误的题目。假如你会使用8051语言并编写C代码的话, 那么对于STM32来说, 你就不必特意去学习它了。

你要考虑的是, 我可以用STM32实现什么?

采用STM32而非8051的原因是什么?由于其运行频率过低而导致计算能力不足;因为其引脚数量有限而难以支持多种外设接口;由于功耗过高导致电池寿命受限;但若要实现SPI、I2C、ADC及DMA等功能时?内存容量有限无法存储大量数据

当遇到需要用 STM32 功能而 51 无法实现的情况时,则无需学习该种方法;你需要直接探索 STM32 的具体应用途径。如采用 SPI 协议的网卡、进行串口通信或配置RTOS等方式...

0aa7e3cf904f539b381504222f4c9e2b.png

关于寄存器vs库

我的观点是:当调试时关注寄存器状态至关重要;深入理解芯片运行机制时必须关注寄存器状态;在普通开发中不必过分关注其状态。如果项目中没有特殊需求要求直接配置寄存器不可使用,则无需特意针对寄存器层面进行开发;因为虽然面向寄存器开发能提升性能显著程度但要为了提高仅约千分之一的性能提升而耗费十倍甚至百倍的时间成本并非值得取舍的选择。鉴于ST公司已提供便捷可靠的工具库无需另辟蹊径去自建体系

那什么时候必须直接控制寄存器?

第一,请注意某个特定的代码块调用频率极高。例如在一个性能瓶颈显著的场景中,请确保每一个执行步骤都经过精心设计以确保效率最大化。此类问题通常出现在图像处理相关的高性能计算环境中。

第二点指出库函数可能出现问题。这种情形出现的可能性极低但也并非完全不可能发生。通常情况下如果你观察到mcu表现出异常行为那么首要排查的方向应该是你的代码是否存在缺陷而不是考虑库函数出现了问题。如果经过仔细检查后确认是库函数出现了问题那么建议你可以尝试在网络上搜索相关案例相信这是许多人曾经遇到过的常见问题

对于传统的电子工程师而言,在使用库编程时可能会产生一种虚无缥缈的感觉,缺乏脚踏实地的工作体验. 但如果你开发过Web应用,编写过服务器端代码,以及制作过桌面端程序,那么你一定能够深刻理解API封装与抽象设计的核心意义.

524957ff66944649eaf8df8ce4149cac.png

对于这个话题,看看其他老司机筒子们自己的看法:

icecut:

选择stm32是因为其功能优于avr,并且资源较为丰富。
因此选择stm32f103。这时候芯片资源尚不充足,则采用寄存器开发的方式更为合适。

后来,在103开发板数量逐渐增多的情况下,默认开始转向采用官方库这一时代变迁的确带来了显著的生产力提升。
然而许多人都比较保守不愿采用官方库为了实现某些功能他们宁可选择直接操作寄存器。
各种理由促使他们选择使用寄存器。
例如:性能不足存在潜在漏洞代码规模过大以及难以掌控等问题...
尽管存在诸多挑战与困难...
但是一些初级开发者依然从中获益匪浅。
即使不深入学习底层知识...
他们也能完成一定的开发工作。

3. 官方已推出了这一通用解决方案。然而,在探索过程中发现这种方法存在诸多不足。
随后开始推广另一种方法——stmcubemx方案。该方案通过根据设备配置与芯片特性自动生成高效的轻量级代码。
该方案不仅体积小巧且便于部署,并附带了推荐的 Freertos 操作系统内核以及开源的 UI 库支持。
作为一位经验丰富的软件工程师,
对新设计持肯定态度。
然而,
这一理念也带来了更高的使用门槛。
例如,
在某些设计中要求自动化的代码生成会导致开发者的代码被固定位置覆盖。
如果你想发挥芯片的最大性能,
软件运行时仍然会施加一定限制,
这可能会限制部分高级应用的设计空间。
不过,
对于熟悉此领域并具备丰富项目经验的应用人员而言,
他们有能力独立管理整个项目的架构框架

4. 在芯片应用越来越广泛的情况下,在软件支持中stm32cubeMx作为强大的开发工具可以方便地帮助我们快速创建高质量的工程并编写适合的应用程序。这不仅能够大幅减少调试所需的时间而且还能提高整体效率。需要注意的是,在带有OS和不带OS的开发中存在诸多差异因此在选择时需格外小心……如果你打算使用没有OS支持的代码则需要谨慎处理……过去在我工作中我也曾利用这种方法获得了较高的薪资回报。

5. 最近在做互联网,所以,有时候还是手痒痒,还想弄 st 的芯片玩玩....

菜鸟同学:

对于单片机本身来说并没有太多需要深入研究的地方;核心竞争力还是软件架构设计;为项目设计专门化的软件平台;深入研究一种特定类型的单片机芯片;其他类型的单片机芯片功能基本相似;很多新手将大量时间浪费在学习单片机硬件实现上;接着会简单介绍几个常用外围接插件的功能;这就是为什么现在有越来越多的人转向嵌入式系统开发的原因:都认为嵌入式系统开发很简单;但其实不然;大多数人在这种情况下只是浅尝辄止地了解一些基本概念;然后就开始动手实践的时候就会遇到各种各样的问题;如果更换一块不同的处理器芯片的话;整个开发流程都需要重新学习一遍才能熟练掌握它的使用方法;因此面对这类问题时我会感到非常困惑甚至有点不知所措

lxyppc:

最初发现了款有意思的硬件产品,在其中采用AVR作为主控制器后就打算直接使用其内部代码。然而担心仅继续使用avr很快就会被他人复现后又转机找到了集成有USB接口的stm32系列芯片。随后将其反编译出来的关键代码迁移至STM32平台上并将其原有的UART通讯接口升级为USB接口以实现更加便捷的数据传输功能

江枫渔火:

诚恳地说,掌握一块芯片需要花费一星期或更长时间.各家公司生产的芯片在应用特点上有明显区别.当遇到不习惯使用的芯片时,则需要参考数据手册中的寄存器设置.

随后的言论中提到了库与寄存器的相关知识。这可能引发讨论。我想这只是谈谈个人的看法,并明确表示自己未曾有过 STM32 开发经验。

我用ATMEL的芯片,用寄存器操作方式。我不可能用官方库。

但我可以将用寄存器写的功能进行封装成函数或模块。

冰零分子:

1.首先了解下芯片架构,看看这个芯片都能干什么事

2.然后跟视频或教程通看一遍,了解下实现一个功能大致需要的步骤

选择一个项目进行动手实践,并且如果了解基本流程的话,在网上可以获得丰富的资料来配置库函数

在执行项目的过程中会遇到各种不同类型的挑战,在克服这些困难的过程中正是提升自我的途径。完成基本外围设备的配置后就能熟练掌握基本操作流程

  1. 最后再做一个项目尽量避免参考教材或网络上的配置流程而独立完成以加深对该领域知识的理解这一过程有助于深入理解底层运行机制

总的来说我的学习过程是先观其广再究其深

84e69d8ca352b81c0e09468bfc174ceb.png

弈涯:

刚开始接触到的是正点原子公司的Mini STM32开发板,在校期间的时间相对较为紧张,在这期间我会通过手动输入数据表并对照数据手册完成程序编写,并根据个人需求进行了一些调整与优化。随后从C语言过渡至掌握系统级编程概念进而深入理解STM32的功能与应用范围,在这一过程中收获颇丰现已经能够较为熟练地运用相关技术进行开发工作。然而目前在工作中仍会涉及 STM32 系列芯片的应用开发 虽然不再依赖手动输入数据表的方式进行程序编写 但回顾过去的实践发现这些案例仍然为当前的工作提供了重要的参考价值

Larm1:

1. 刚开始使用寄存器配置时,感觉要看的文档,花的时间确实比较多;

2. 官方不再提供固件库后,在最初体验中感到不安;但随着时间的推移逐渐适应了这一变化,并节省了大量的时间。

现在普遍都是通过官网获取相关功能外设代码进行测试和调试;对于不太熟悉的地方,则需要查阅文档;经过长时间实践后发现对硬件资源掌握不够熟练。

4. StmCube由于没有带系统,没怎么使用过;

5. 以后的路还长着呢...

shizaigaole:

和学其他单片机一样:

1. 买块开发版,熟悉编译,下载环境

2. 写个跑马灯,自己感受一下

3. 把STM32的中断,尤其是定时中断搞清楚

4. 作为硬件应用来说,一定还要仔细看看IO管叫相关电气方面的参数。

到这一步就基本入门了。

但是要熟练使用STM32,还要踏踏实实的把stm32的文档手册读一遍。

接下来研读编译器内置的示例代码,并将其优化后的版本导入到自己的开发环境中进行测试。

其实做几个模块后,就基本熟悉了。

以后要用的就再去啃手册和例程

shizaigaole:

说白了三句话:

1.熟悉编译下载环境

2.啃手册

3.研习官方例程

feilusia:

这是我自己的学习路线:

1、51学习寄存器操作(网上资料大把,不局限谁的资料)

2、stm8学习寄存器和库操作(看风驰电子的资料)

3、stm32学习寄存器和库操作(看正点原子的资料)

4、CC2541学习协议栈(看amo的资料、看我写的资料)

5、安卓入门学习(看《第一行代码》)………………(目前我所处阶段)

6、安卓蓝牙学习(未知)

ywlzh:

哈哈哈 我路过,也说说吧,

初学stm32,我也是从8位,16位单片机走过来的,学习的第一步,就是点亮个灯。

有人是只管点亮就行了,有人是会继续深究为什么会点亮。

目的是一样的,但有人是走个过场,有人能举一反三。

(本文转自网络整理,感谢原作者辛苦分享)

点击下面“了解更多”

全部评论 (0)

还没有任何评论哟~