开篇之前,我想问大家一个问题,为什么要学习32位单片机?
如果您上来问,如何系统地入门学习32位单片机?这本身或许是一个问题。
为了学arm32位单片机学习?
为什么这么说呢?假如你之前接触过51单片机,学过C语言,那么arm32单片机并不需要刻意去学习。到那个时候,你会考虑的问题是,我可以用arm32能实现什么。在51单片机无法满足项目设计的时候,或者是因为51单片机频率太低,管脚太少、无法满足外设IO,功耗太大,又或者是功能太少,而你恰好想使用SPI、I2C、ADC、DMA。
当你需要使用STM32某些功能,而51实现不了的时候, 那STM32自然不需要学习,你会直接去寻找STM32某方面的使用方法。比如要用spi协议的网卡、要使用串口通信、要使用rtos等等。
学习arm32位单片机必经之路
现在,我们假定大家已经对单片机有一定的了解,如果没有的话,建议先把51单片机的基础学好。嗯,目前单片机市场上使用的基本是C语言,必须要掌握好。其次,就是要掌握好单片机案例的各种芯片使用,不管多么复杂的系统,单片机基本结构也分为“内核+外设”。控制外设的途径就是特殊功能寄存器。单片机外设不多,主要可分为三大块:中断系统、定时/计数器和串行接口。并把控制这些外设的特殊功能寄存器弄明白。
学习arm32跟学习51都是一样的,平时可以多查阅相关技术书籍、文档手册,以获取最基本的知识。ST官方在这方面做得很好了,推荐学习它的《STM32F103xxx参考手册》《STM32固件库使用手册》两个32位学习文档。
前者重点学习前几章内容,存储器和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能I/O,中断和时间等等一定要花时间阅读,后面讲解具体的功能模块设计,在后续设计用到的时候,可以再自行查阅。后者则主要学习固件函数库的使用方法,主要为了简化编程,我们只需学会调用即可。比如文档和库规范中的命名规则,编码规则,固件架构和使用步骤,模块函数等。建议对GPIO库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,因为平时经常会用到。
相信学习了解51单片机,掌握arm32单片机相关基础知识后,你就可以尝试自己开始动手做项目了。
给自己设定一个arm32学习计划
很多时候所谓“入门”,通常指你基本理解,并能掌握一些常用32单片机外设使用,而像真正了解掌握一款处理器,你最好还是要按照实际能力,根据自己情况规划一套学习方法。
有的人学习两周,就可以进行简单独立的arm32开发,有些人则需要1个月、2月甚至更长的时间,因人而异。建议你每天利用业余时间学习,不管时间是否充裕,给自己做一个arm32学习计划。
这里我列出一些不算建议的经验,以过往自己的学习心得,供大家参考下。
步骤一,学习安装arm32单片机开发套件,及相关开发工具KEIL。
步骤二,挑选部分32单片机例程,比如定时器,下载到开发板上,观察两个LED灯的闪烁情况。这部分的操作,参考课程配套的视频进行。实际上,以上两个步骤,是为了熟悉要使用的工具软件而已。属于找感觉的阶段。
步骤三,查阅单片机开发的学习文档,文档可以到ST官方,或者学习单片机开发板,都会有提供相应的资料。
步骤四,开始查看例程的编写,看看例程是如何写的,自己可否修改下例程,达到自己想要的效果呢?
步骤五,在裸机上测试、跑程序,或者移植到单片机平台上运行。比如:RT-Thread实时系统,是否需要试一下?恭喜你,至此,你已经可以自如进行独立的开发了。
最后一步,给自己一个目标(项目),把它实现出来!
提供的一个学习arm32开发的思路,仅供大家参考哦!上述列出的关键步骤,也是希望能帮助大家快速入门32位单片机。
有想深入性学习ARM32 位单片机的小伙伴也可以联系我 173 6188 7273。 |