本帖最后由 TAHT 于 2018-5-24 09:18 编辑
前言
首先,STM32是什么,一个不错的嵌入式开发平台吧。以下是个人观点:嵌入式不好定义,51单片机小车,智能家居,或者银行的ATM机,手机平板,都叫嵌入式。这里面也分软件,硬件,UCOS,LINUX,Vxworks,安卓,ios。总之什么是嵌入式,你开心就好。
本帖是自己作为一名小白对学习STM32的一些体会.(其实是因为上班没事做) emmm~有喜欢MCU的朋友可以进行交流,当然也欢迎高端玩家和对电子设计感兴趣的朋友。准备 磨刀不误砍柴功,首先介绍一些基本的概念。 1.参考手册与数据手册,一个是教你怎么用STM32的,一个是告诉你STM32是什么样的。我一般很少翻数据手册也就是datasheet。但参考手册经常用到,ST也有一个STM32CUBEmx,所以应该小白很少用到datasheet。 2.IO口不要接感性负载(小白切记)。什么继电器啊什么的,一股青烟就可以洗洗睡了。 3.寄存器跟库函数,都不错。只是驱动层而已。处理层跟应用层是研发的关键,驱动层不出问题后续才能继续。 4.学习STM32需要学习什么?其实所有的单片机无外乎就分为三类 首先:你要学习GPIO,中断,定时器,串口。 这些是每个单片机都有的,而且会有一些差异。 然后:你要学习一些外设和协议:IIC,SPI,WDG,ADC/DAC。然后各种传感器什么的,这些也会有一些差异,但既然是协议原理是一样的。如果你用51可以用18B20显示温度,用STM32却不会用18B20显示温度。那只能说你不会18B20,或者说你C语言根本不过关。 最后:系统+算法。单片机一般还是跑实时操作系统的,算法就更有意思了。平衡车,四轴这种看得见的控制算法。或者,大数据算法,机器学习?哎,我也不知道了。总之越学你就会越觉得所有软件都很像,所有芯片都很像。毕竟都是SIO2,都是二进制。 同时,会的越多,你就越会发现自己会的少。 硬件 首先STM32应该有个最小系统,就像所有最小系统一样。它包扣以下几样东西: 1.供电 :3.3V,从原理图上看,凡是不带ADC字样的IO,都是可以承受5V电压的。但切记ADC引脚不要连接5V。即使这样,从可靠的角度考虑,STM32是很温顺的,最好不要用5V去“强奸”它。 2.复位 :跟51差不多一个电阻一个电容一个按键。 3.晶振 :这里说的是外部晶振,STM32当然有内部晶振。而如果你有幸从事这方面工作,你会发现老板基本不会让你采用外部晶振,毕竟量产。 4.Boot启动模式选择 :STM32是有启动区的哦,简单的说就是更改这个,决定了程序从哪个位置开始跑 5.下载电路(串口/JTAG/SWD): 个人感觉 SW比较方便,几十块的ST-LINK,还可以单步调试。 6.后备电池 :掉电给启动区用的吧(大概) 软件 先是准备一些软件,我一般用到下面这些,可以联系我获取。我也是小白一名,总之先有人需要吧,再想怎么发,哈哈。 1.KEIL :不错的开发环境,以前89C51时就在用KEIL,现在应该是叫MDK了吧。总之集成了代码编写跟仿真烧录。 2.IAR:跟KEIL差不多的,但离开学校很多公司使用IAR的,可以了解,其实与KEIL区别不大。 3.SourceInsight :这个是看代码的,百度就能搜到,没听过Sourceinsight的软件工程师不是软件工程师。 4.Compare:代码对比软件,让你瞬间找到自己的错误。 5.串口助手:网上大把,MTK的比较好用。 6.各种驱动 :也是网上大把,但比较杂和比较多小广告。 待续 新人第一次发帖,我是一名刚毕业的本科生。可能不会开源什么,也不会传很多附件,用这个帖子发表一些自己还算特别的看法,希望通过这些见解,帮助对STM32有兴趣的人带来更好的理解,本小白也是参加了深圳的STM32中国峰会才开始学习STM32的。工作闲暇之余希望结交一些朋友。 嘿嘿~ |