学stm32感想

来源:互联网 发布:中国期刊数据库靠谱吗 编辑:程序博客网 时间:2024/05/07 07:01

自己学stm32也有1年的时间了,记得从51单片机过度到stm32用了不少的时间,当然也走了不少的弯路,不过我很幸运在学校有科协这个科创氛围很浓的地方,还有那么多的学长们耐心的帮助,在这里谢谢你们。

stm32这个单片机在我心目中已经到了’无所不能’的​地步了,他真的很牛,引用我看到过一句精彩的话描述他的内核:

“谁是最节能,最擅长把好钢用在刀刃上的人?要让我说,我一定得表一表单片机的开发者。他们使出浑身解术,写出精妙玲珑的代码,把单片机点点滴滴的力量汇集起来,让它如同涌泉一般尽情地迸发,灌溉滋养着各行各业。是什么灵丹妙药赐予了他们这么神奇力量?除了好的处理器之外,还要配合好的开发环境和工具链。也正出于此,在设计ARM7TDMI处理器时,ARM的工具链工程师们和CPU设计师们强强联手,为了让它的内部结构更优化、更精练、更到位而并肩奋战了很多日日夜夜,终于有了ARM7TDMI的无限辉煌,并且久经岁月的洗礼依旧光芒绽放。

珠联璧合的最新果实,是破茧而出的ARM Cortex-M3处理器。这个小尤物,处处闪耀着ARM体系结构激动人心的新突破。它基于最新最好的32位ARMv7架构——这个架构支持高度成功的Thumb-2指令集,还有很多时尚、前卫甚至崭新的特性,充满了新生代的气息。它在很好、很强大的同时,编程模型却变得更加清新爽洁了。不管你是祖国的花朵、是人民教师、还是精明的商人,也无所谓是新手还是骨灰级玩家,Cortex-M3都将尽情展现它的秀外慧中,带给你喜出望外的收获和“激活”!”

我不能说出向他一样华丽的语言,不过在我心目中stm32已经发挥出Cortex-M3应有的水平,就我来说,一些相对复杂的控制,比如四旋翼要求相对高的处理运算来说,stm32是首选。对于ARM高端的单片机当然不是我用来简简单单做控制而生的,当然我也没接触过呢,就不在讨论范围了~

想一想自己学stm32的过程也让我知道了如何去学东西,从无到有的过程。

在我51单片机还没有弄明白,打算挑战自己编一个计算器的时候,学长说,不早了,快去选一下自己对stm32还是msp430感兴趣,去学吧。我就这样迷迷糊糊踏上了学习之旅。最开始呢去图书馆查各种关于stm32的资料,在百度云上下载了视频去学习,就这样迷迷茫茫的过了一个月,仿佛什么也不懂,学长告诉我去买一块板子动手去做才可以学到东西,用的是正点原子的,真心很不错。也是从那时我才开始​了解这个单片机。

因为自己学过51单片机,而stm32的操作库函数让我开始很糊涂,看视频别人一步步的讲解才明白库函数的好处,(不过视频这个东西不如读书快,而且慢慢的我还是很鄙视视频,因为这样的学习效率太低下了),了解之后呢,我更多的就是去读那个不完全手册里对这个程序的讲解,然后把程序下载进去,简单的更改下​数据看一下是不是自己想要的结果。这个过程真的持续了很久,而且自己玩的也是不亦乐乎,可现在回想起来自己用了不少时间去做了无用功。我想复制粘贴这些程序最坏的影响就是让自己没有学到编程的思维,不知道怎样才能更好的撘出架构,真正被安排一个项目时你会感到力不从心,老师说过一定要学精,而学精的最基本要求就是把基础打得扎扎实实!

有一个电子大赛,学校给我们了预备题,是做一个万用表,我开始跳出正点原子的例程去自己编出代码,我在那时候真的学了不少东西,​用了学长给我的液晶和PS2的驱动,真的可以用,虽然我的硬件战友不在了测评很失败不过我还是学到了很多,而且我很感兴趣,认准了自己的路就要走下去。不过那时我真的误入歧途,认为拼凑不就行了,就可以编出任何我想要的东西,现在想想天真的很哦。

自己自信心爆棚,开始研究操作系统,用ucos+ucgui,自己做了一个2048,的的确确通过拼凑实现了,自豪的不得了,回头想想自己的bug真是太多太多了。而且现在还是一知半解。

高二上学期,有一个我心目中非常厉害的学长,他把一个非常非常简单的作品让我完成,是一个辉光管的时钟,真的是异常简单的东西,可我做了好久好久,原因竟然是,stm32没有正常工作!我开始反思自己了,我开始注意一些硬件上的问题,学会了用示波器,自己修改了简简单单的驱动。接着自己写iic的驱动,依然硬件有问题,不过对最简单的通讯协议有了个了解​。

后来就是给老师做项目了,项目并不难,不过把我的问题彻彻底底的暴露了,基础太差让我许许多多的知识都是从头学起,对自己的代码没有信心。我为了一个简单的液晶调了一周的时间,硬件调试时共地问题折磨了我多次。但这样的挫折也让我体会到了高效率的生活,很有意义。

而现在,通过自己编最简单的四旋翼的代码,我对之前那些捕获,PWM,iic一些东西有了很深的了解,总结下stm32中我认为最重要的部分

1. gpio的输入输出(寄存器和库函数)
2. uart串口(总会用到)
3. 定时器 捕获 PWM(输入输出)
4. 中断(外部,定时器,ADC等等)​
5. iic,spi协议

1 0
原创粉丝点击