找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13878|回复: 24
上一主题 下一主题
收起左侧

请问stm32新手,应该怎么学,想慢慢的捋清思路

  [复制链接]
跳转到指定楼层
楼主
有没有大神可以  梳理一下 stm32 的 一步步技巧啊 作为新手 想慢慢的捋清思路
还有 从 最小系统开始学习怎么样啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 8#
ID:319344 发表于 2018-7-23 22:28 | 只看该作者
我就谈一下自己的感受吧,首先,需要有一些了解,因为你要买开发板呐,但是这时候我个人觉得最好不要问同学朋友买什么好哇,哪个牌子好哇,首先你需要可以让你快速入门的,一直在接触在学但就是没有一个清晰的思路(也就是一直都不知道自己学会了没有),那是及其郁闷的一件事。所以根据自己的认识知道几种常见的几种32开发板,然后根据资料是否全面,相应的论坛是否能及时回复问题等等,买一个开发板(无论之后感觉如何都是自己选的,再有什么情绪也应该尊重当时自己的选择),然后先清楚重要概念,然后看学习手册或开发手册了解你大致需要做(学)什么,然后就上路吧,知道前面还有多远,下一个路牌上会写着什么,不要迷路,路可能很远,所以要明确阶段性的目的地在哪儿,一山更比一山高,所以,如果自己阶段性目的地是半山腰,不要到了半山腰还继续爬,至少该知道自己已经到达目的地,山顶是另一个目标,不是现在立即就要去到达的地方。每个人的经历不一样,看待问题的角度不一样,说得再具体也具体不过那些开发板配套的资料,但你根本没必要背下来,也没必要把别人的推荐当作自己学习的金规玉律

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

来自 9#
ID:209065 发表于 2018-7-23 22:45 | 只看该作者
去年的这个时候我跟你一样有这个疑问,不过那时我是从库函数入门的,但我建议从寄存器开始,因为库函数很多都看不懂,简单的IO配置还好,到了后面稍微复杂一点的功能就需要一大堆的库函数配置流程,根本看不懂,找资料也是一头的雾水。寄存器入门有两个好处:
1.把寄存器给整明白了就相当于理解了芯片内部的电路构造,后面上手库函数是非常简单的;
2.新手在编写代码的时候完全可以忽视固件库这种东西,因为这玩意儿在创建工程的时候对新手不太友好,而且固件库的版本有点多(虽然大致都一样)。

评分

参与人数 1黑币 +70 收起 理由
admin + 70 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

来自 11#
ID:369800 发表于 2018-7-24 11:05 | 只看该作者
首先,买块开发板是少不了的。目前比较受欢迎功能全的板子有野火开发板、正点原子的ALIENTEK 开发板,算是帮推荐一下了。另外就是开发工具,STM32一般都支持串口ISP烧写,但如果愿意多出钱买个J-link或U-link,st-LINK,这些工具使用更加简便,可帮助你节省不少时间。另外,STM32系列的外设比较多,操作比51复杂,所以宜选用ST官方的固件库来写程序,所以要知道STM32官方固件库的使用方法。买书的话也着重选讲解固件库的那种,一本《stm32参考手册》也是必不可少的。跟着书上对固件库调用的讲解,应该一晚上就可学会工程的建立,然后结合开发板资料就可点灯了

评分

参与人数 1黑币 +70 收起 理由
admin + 70 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

来自 15#
ID:378369 发表于 2018-7-24 13:46 | 只看该作者
其实我觉得如果你是刚开始学32,不妨买一个成熟模块,先看看例程,从库函数学起,从最小系统学起可能会比较难,因为很多模块需要外部连接,而这个连接对于新手来说可能不是那么容易,还是先理清楚成熟板子内部结构再开始用最小系统会比较好

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

沙发
ID:277550 发表于 2018-7-23 00:11 | 只看该作者
最好是从寄存器开始,,,,,,,,,,,,,懂了寄存器,后面的各种功能、及函数库,很容易上手

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:377908 发表于 2018-7-23 14:41 | 只看该作者
回复

使用道具 举报

地板
ID:377917 发表于 2018-7-23 15:05 | 只看该作者
建议从库函数学起,实用且简单;买一套正点原子的开发板就可
回复

使用道具 举报

5#
ID:377975 发表于 2018-7-23 15:50 | 只看该作者
可以找靠谱的书或视频系统学边学边用开发板实践
回复

使用道具 举报

6#
ID:378070 发表于 2018-7-23 17:28 | 只看该作者
32有库函数,没有基础的话建议买一套开发板来学习
回复

使用道具 举报

7#
ID:364341 发表于 2018-7-23 19:53 | 只看该作者
我想说,为了学习单片机而去学习单片机的思路不对。

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

本身就是一个错误的问题。假如你会使用8051 , 会写C语言,那么STM32本身并不需要刻意的学习。

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

为什么使用STM32而不是8051? 是因为51的频率太低,无法满足计算需求?是51的管脚太少,无法满足众多外设的IO? 是51的功耗太大,电池挺不住?是51的功能太弱,而你要使用SPI、I2C、ADC、DMA? 是51的内存太小而你要存储的东西太多?

当你需要使用STM32某些功能,而51实现不了的时候, 那STM32自然不需要学习,你会直接去寻找STM32某方面的使用方法。比如要用spi协议的网卡、要使用串口通信、要使用rtos等等。。。



从菜鸟到牛人的学习步骤

我们假定大家已经对STM32的书籍或者文档有一定的理解。如不理解,请立即阅读STM32的文档,以获取最基本的知识点。

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

STM32处理器进入国内市场时候,ST官方(或者第三方)的推广工作做的非常好。翻译了大量的英文文档,迎合了国内的很多工程师的思维。

学习的时候,关注两个比较重要的文档:《STM32F103xxx参考手册》,《STM32固件库使用手册》。这是针对有充足的时间、精力的同学,建议去下载需要查阅的文档,以获取更多信息。

阅读《STM32F103xxx参考手册》,一定要注意,不需要全部阅读——没有时间的。建议选读,但是前几章必读。存储器和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能I/O,中断和时间等等前几章一定要花时间阅读。

后面章节,讲述的是具体的功能模块设计。如果我们用到哪个模块,就可以去阅读哪个模块。比如在使用AD的时候,就需要去阅读第10章ADC。其他不举例。相信每个初学者都有自己的研究方向和判断。

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

这里我主要强调的是,阅读《STM32固件库使用手册》的时候,前面几章也是必须阅读的。比如第一章文档和库规范中的命名规则,编码规则,这些都是需要注意的。第二章是最关键的,希望大家熟读。第二章描述了固件库的架构,我们如何去使用固件库的步骤等。有了第二章的基础,我们就可以借助固件库写出自己的代码了。第四章开始之后,就可以根据大家的需要来阅读。实际上,后续的章节,都是描述某个模块有什么什么函数,每个函数如何使用等。

关于后面的章节,建议对GPIO库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,因为平时经常会用到。

以上提到的这两个文档,已经足够您看的了,呵呵。希望您能从中获取大量的STM32基础知识。

设定一个不错的两周入门计划

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

(2)这里所谓的“两周”,根据每个人的时间安排不同而不同。

如果您每天有充足的时间学习,那么可以规定自己尽快地能独立地进行简单的STM32开发。

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

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

我这里列出一个思路,仅供参考。

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

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

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

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

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

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

恭喜你,至此,你已经可以自如进行独立的开发了。最后一步,给自己一个目标(项目),把它实现出来!

再次强调,以上只是一个学习STM32的思路,供大家参考。下面列出了前面关键的步骤,希望大家能尽快入门。

第1步:熟悉调试软件

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

这两个软件在安装软件的过程可以查看神舟开发板用户手册,这里不再重复,大家可以参考我们推出的教程《如何安装J-Link驱动软件》以及《如何安装MDK(Keil)软件》。如何验证自己已经熟悉调试软件的操作了呢?很简单,神舟STM32开发板光盘里附带了很多HEX格式的文件,可以选择一些HEX文件,来观察运行结果。

该步骤要达到的目标:熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。

第2步:GPIO编程

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

GPIO本身的编程实际上很简单:

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

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

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

该步骤要达到的目标:熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。

第3步:开始全新的STM32深入研究

经过以上调试软件的熟悉和GPIO口的编程调试后,相信您已经对STM32有一定的了解。

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

140809my48za98trtfzycr.jpg (60.15 KB, 下载次数: 34)

140809my48za98trtfzycr.jpg
回复

使用道具 举报

10#
ID:378255 发表于 2018-7-24 00:33 | 只看该作者
你买单片机的时候一般会附带教程,你可以下浏览一遍,稍微熟悉一下库函数的用法,多尝试几次就熟练了
回复

使用道具 举报

12#
ID:378364 发表于 2018-7-24 11:16 | 只看该作者
从库函数开始学习,然后学习外设
回复

使用道具 举报

13#
ID:26849 发表于 2018-7-24 12:14 | 只看该作者
建议构思一个项目做,定下期限,这样比较快速
回复

使用道具 举报

14#
ID:378430 发表于 2018-7-24 13:09 | 只看该作者
如果可以的话最好找项目做,一边做项目一边学习这样会成长的很快。参考零死角玩转stm32手册根据指示一步步来,不过首先要弄懂各个寄存器,这样有利于接下来的学习

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

16#
ID:378464 发表于 2018-7-24 14:25 | 只看该作者
买个开发板,然后看这个开发板的资料和例程
回复

使用道具 举报

17#
ID:378454 发表于 2018-7-24 14:36 | 只看该作者
建议学习库函数版本,结合具体的项目,或者移植以前学过的项目代码。结合具体的项目可以更加快速的入手

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

18#
ID:378485 发表于 2018-7-24 14:47 | 只看该作者
加油好好学习
回复

使用道具 举报

19#
ID:378618 发表于 2018-7-24 18:05 | 只看该作者
买块正点原子的板子,跟着视频慢慢来来
回复

使用道具 举报

20#
ID:378622 发表于 2018-7-24 18:20 | 只看该作者
同新手
回复

使用道具 举报

21#
ID:364951 发表于 2018-7-24 19:09 | 只看该作者
这是我的一些资料,仅供参考,大家可以交流交流学习,谢谢。https://pan.baidu.com/s/1BRBzgfaEOuPBBvNscEkaTw
回复

使用道具 举报

22#
ID:378646 发表于 2018-7-24 19:17 | 只看该作者
先把51学会,之后如果有开发板根据开发板的教程一步一步来吧,另外多逛逛论坛,关键一点多动手,程序从改到写
回复

使用道具 举报

23#
ID:377611 发表于 2018-7-26 15:47 | 只看该作者
wenzedong 发表于 2018-7-23 22:28
我就谈一下自己的感受吧,首先,需要有一些了解,因为你要买开发板呐,但是这时候我个人觉得最好不要问同学 ...

谢谢指导 有方向了 谢谢
回复

使用道具 举报

24#
ID:372737 发表于 2018-7-26 16:10 | 只看该作者
我的建议是自己做一来那个小车 买一个最基本的stm32f103去学习 然后买一些电机 轮子 光电开关
多写点程序 多练练 看看正点原子的视频 慢慢进步

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

25#
ID:290583 发表于 2018-7-26 20:39 | 只看该作者
买开发板,看教程,然后自己开始做小项目
回复

使用道具 举报

26#
ID:478123 发表于 2019-2-19 15:27
第一看教程(根据个人喜欢看书或者看视频都可以,推荐看视频)
第二自己动手操作

我推荐几个关于stm32的视频资料
(stm32串口应用)
http://www.makeru.com.cn/live/detail/1290.html?s=45051
(stm32电机驱动)
http://www.makeru.com.cn/live/1392_1218.html?s=45051
(定时器)
http://www.makeru.com.cn/live/1392_1199.html?s=45051
(DMA专题讲解)
http://www.makeru.com.cn/live/1392_1048.html?s=45051
http://www.makeru.com.cn/live/1392_1020.html?s=45051
( ADC读取光照传感器)
http://www.makeru.com.cn/live/1392_1004.html?s=45051
(STM32中断系统)
http://www.makeru.com.cn/live/1392_1124.html?s=45051
(时钟系统)
http://www.makeru.com.cn/live/1392_1082.html?s=45051
(stm32 实战之温湿度采集)
http://www.makeru.com.cn/live/detail/1476.html?s=45051

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表