我喜欢用通俗的话来写**。所以**内容可能不太书面化和精准,对于不正确的地方还请各位指出。
上学期学过MSP430。这学期参加学校的比赛,所以就接触了stm32。因为入门没多久,那就从入门说起。
刚学一个东西的时候,啥都不要去做,就去查查相关的新词汇,了解一些新概念,这也是学习新东西最难也是最枯燥的基本步骤,在没人指导你的情况下,只能自己去理解,比较痛苦。比如说固件库,英文名叫Firmware,为什么不叫硬件,这个我也不知道。它就是一个stm32的一些人家写好的一些内核代码以及模块驱动代码,内核代码是必须的,模块驱动代码你可以用可以不用,用的话就是库开发,不用的话就是操作寄存器。假如使用stm32f10x系列,下载下来的文件名为stm32f10x_stdperiph_lib.zip。
然后是开发工具,用 stm32 keil MDK。我下载下来的文件名为MDK511.rar。安装就好,网上也有教程。
然后就是建立工程模板,这个也痛苦。这个文件那个文件建立来建立去,搞着搞着就烦了。于是我按照网上的教程写了一个批处理,把固件库里面的需要的东西都提取了出来。我放在了百度云里,然后还没结束,只是将文件提取出来了,还要新建一个keil工程,把这些文件用起来。然后网上也有教程,怎么配置,怎么建立组,怎么添加文件。有一些文件夹,比如CMSIS,PWLB,STARTUP,USER,DOC等组,也就是逻辑上的文件夹。我做的时候把这些东西都写成中文名了,比如STARTUP是系统启动代码,怎么起名字无所谓的。经测试中文名也没问题。然后还有外设驱动文件也加上去等等。我配置好了一个,新手的话还是自己建立一遍比较好,建立后你也就知道那里面的文件都是干什么的了。
还有就是编辑程序的话可以换VC6.0或者visual studio来写。具体请看编程的东西都是相通的。
接下来就是学习各个模块了。记得我学MSP430的时候,把msp430f5529.h一行一行都注释了一遍,然后基本的东西就明白了。
不管库开发还是寄存器层的开发,只要你用的很溜,那就是大神。当然调试什么的最好还是要了解了解寄存器和汇编才能彻底精通stm32。个人理解,欢迎拍砖。 |