你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【说出你的故事】一个入门者STM32学习经历

[复制链接]
党国特派员 提问时间:2016-1-29 13:40 /
        和大多数单片机学习者一样,STC89C51是我接触的第一款单片机,也是到今天为止玩的最熟的一款单片机...之所以选择这款单片机作为入门的东西,是因为,对于初学者来说,个人认为,不必追逐别人眼中的起点高或者高大上,因为真的是这样,别人说嵌入式好,难道所有人都应该在没有任何C语言的基础上去学习嵌入式么...

        就像别人曾对我说过,如果你没有兴趣,请你马上停止学习嵌入式,那样因为你学不会,也学不好.选择51单片机,是为了试探你自己,是否真的能坐在那里一整天都在研究一个语法,一种现象,一套思路.其次,选择51单片机,可以让大多数没有这方面基础的学者由浅入深的来学习单片机,而不是上来就被那看似庞大的单片机体系所吓倒.在学习这款单片机的过程中,我学会了Keil4的安装和使用,学会了AltiumDesigner的安装和使用,也掌握了一些必要的电路知识...

        就这样,我踏上了和大多数单片机前辈的同一条路,慢慢的在单片机这条路上走了下来,知道学习一年半的51单片机以及其他一些STC系列如STC12C5A60S2等等基础上,我接触到了STM32....开发板是前辈画的,芯片用的是STM32F103C8T6,我记得很清楚。好像是用来测试一个3G功能的,不过对于我来说太远;我要来了3个,自己焊了一个最小系统,好在公司资源还是不错的,器件芯片有,还可以问问前辈--对公司还是比较满意的,虽然工资少了点,但学东西第一位O(∩_∩)O~。

        最开始当然是建工程了,这个真不太会,前前后后竟用了一周(时间真长,别见笑啊),上网查资料, 问前辈,自己琢磨。。。总算搞定,然后从GPIO开始学,开始还真没什么头绪(虽然在大学学点51,但完全没有真正应用,顶多是跑马灯实验),开始纠结是从寄存器开始学还是从库函数开始学,后来看到一句“用库函数入门,用寄存器提高”于是下定决心用库,但当时没有库的概念,结果走了很多弯路,看了很多不必要的东西,当时竟没理解到只是调用库就OK了,别的不用管。最后潜心看李想老师的教程看完一个例程后照猫画虎写了一个,经过了多次调试以后,灯终于亮了!那个兴奋啊。再次还要感谢李想,是他让我少走了很多弯路,接着学的EXTI,当时对中断的理解只是概念上的,也不知道中断程序要放在中断函数里(it.c),总之现在想想当时怎么那么不开窍啊。慢慢的中断也弄出来了,慢慢的有点感觉找到门了:先大致看一下要学习概要,找个例程,一个函数一个函数的看,重点理解配置的什么,参数,然后在头脑中形成一个大概的轮廓,虽然有时候不是特别清晰;接着学习TIMER(通用定时器),只是学习了最简单的溢出中断,其他捕获什么的都还没有看呢--想先对stm有个总体的学习,下一步准备每个模块细细“研读”。应用定时器溢出中断做了个闪灯小程序;接着顺便把学习过的GPIO,EXTI,TIMER混在一起做了一个优先级(NVIC)的程序,以来了解下优先级,二来对前面的学习是一个复习,虽然很简单,但没能一下子就调出来--其实每次都会在细节上出不少差错:时钟忘使能啦,GPIO没有配置全啦,名称写错啦(很低级,但这个有时候真的不好找),概念理解不对啦。。。。。。

        有时候憋的真是相当难受,但问题解决的那一刻真怎是一个“爽”字了得啊,当然前提是自己解决的;接下来学USART(串口),原来我也不知道有串口这么个东西,但弄单片机的要是不知道“串口”就好比开车的不知道轮胎一样了,开始完全没有概念,什么波特率啊,奇偶校验位啊,停止位啊,对着一堆名词看着都头大。慢慢的了解到串口是一种通讯传输方式,就和USB一样,只是串口比USB早出生好多年。这时候已经有点门了,看概念,抄例程,看函数,理解,根据自己的理解改参数,实现!学会了串口,以后就可以通过串口来观察数据了(我的实验板可是没有屏的);下一个是DMA,DMA可是个好东西,至于怎么好,百度一下,大家就知道了;下来ADC(模数转换),就是把模拟量转化成数字量,stm32之所以强大,ADC算一个重要条件,我只是简单了应用了一个测电压的功能(可以说是ADC的最简单功能了),用串口显示探针(自己焊上去的)所测到的电压值,主要卡在了两个地方:1忘记配置串口的GPIO(所以一定要注意细节,一个细节能憋我1天) 2对通道的理解不够,原以为通道自己找串口(现在发现自己挺天真的),实际是每个通道对应自己的GPIO口,或模块(如温度传感器),“一知半解”又让我卡了1天。解决这两个问题后,串口赫然出现数字啦,而且是探地是0,探电源是33xx(3.3V的),还真准呢啊,后来又学习I2C,SPI,CAN等各种通讯协议,I2C协议最坑爹,弄了很久没有弄出来,最后百度原来是STM32硬件I2C有BUG,使用时要有注意事项,最后用软件模拟也同样完成,就这么一路跌跌撞撞的走了过来。对于我来说STM32我不也说我非常精通了如指掌,但做项目还是没有问题的。

论坛里藏龙卧虎,高人辈出,在各位前辈面前我也只能算是初级入门者,还要向前辈学习,继续努力。。。


收藏 评论5 发布时间:2016-1-29 13:40

举报

5个回答
沐紫 回答时间:2016-1-29 13:54:48
这排版,把我吓住了。楼主稍微调调,分分段空空行,画画重点啥的,可好
党国特派员 回答时间:2016-1-29 14:20:01
沐紫 发表于 2016-1-29 13:54
这排版,把我吓住了。楼主稍微调调,分分段空空行,画画重点啥的,可好

已经重新排版了。
zhangdaijin 回答时间:2016-1-29 14:57:20
必须赞一个   很励志哦   
沐紫 回答时间:2016-1-29 17:06:51

点赞!
逍遥李 回答时间:2016-2-2 10:08:14
给特派员点个赞!

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版