我在上学期间学的是51单片机,参加工作后才对ST的产品有了粗略的了解,记得最初的第一块开发板是由社区活动中获得的,那是一块STM32F030-Discovery开发板,当时自己只积累了一些C语言的知识,对MCU内部的构造及应用方面的设置几乎为零。为了兑现申请板子时的承诺,只好从GPIO口入手来学习。 1.从GPIO口入手 由于51单片机的最基本资源也是I/O口,只不过它在使用时更为简单罢了,它在作为输入、输出时基本上无需做什么设置,只是在进行输入检测时要进行一下置‘1’,以便对低电平能更好地识别。 在使用ST时,则需要对GPIO引脚进行设置处理,因为它比51单片机的I/O口要复杂的多,当然这是由它的丰富性能带来的。 在作为输入口来使用时,它便具有上拉、下拉、上下拉等性能,当然这是靠相应的设置得来的;若作为输出口来使用,它则会有驱动和开漏2种方式输出。掌握了这些,你就能使LED等亮起来了,再配上一个小按键你就可以发号施令让开发板听你使唤了! 由于使用51单片机时就开始用KEIL编程,这样也为ST的编程得来了便利,虽然两者在版本上存在这较大的差距,但在操作方式上还是轻车熟路的。 2.拿个小项目练手 掌握GPIO口的使用后,最便于实现的小项目便是设计一个逻辑电路模拟与质量检测的作品。因为有了GPIO口的输入、输出功能,再配上位操作逻辑运算就能实现逻辑变换功能。 你只需在输入端配上些小开关,在输出端配上LED发光管即可实现无论是与、或、非,亦或是异或、搬家前等功能。此外,由于质量检测是功能模拟的逆运算,此时将模拟中无限循环,变为按真值表的多分枝查表处理,即可掌握程序设计中对结构语句的学习。此时再为它配上人机交互操作界面,便可又迈上一个新的台阶。 3.有效拓展显示功能 在人机交互设计中,最廉价的显示器件要属数码管了,用一个四联数码管在加上3个小按键就可实现一个基本的人机交互。 此时,可以先从静态显示开始入手,然后再转为动态显示,因为这样会更节省GPIO口,一个4位的静态显示方式要占用4*8+4=36个GPIO口,而同样是一个4位显示,采用动态方式只需占用8+4=12个GPIO口。而小按键的使用,则能使静态的电平判别提升到动态的扫描识别。从人机交互界面的设计,就能从简单的二进制认识向编码的认识上提升。 此时,为前面的那个小项目配上人机交互功能,就可实现芯片名称编号的键入,并看通过数码管来显示检测的结果了,至此就基本算是入门了。 在此基础上,再将数码管改为液晶显示,如使用LCD1602、LCD128*64、LCD5110等就可实现字符的显示。再该为OLED屏显示,则可从单色显示升格为双色及彩色显示。将这些显示功能移植到新出品的ST开发板上,定能使人有一种得心应手之感! 4.不断拓展新功能 伴随新的ST开发板的推出,总会伴有相关的例程。对例程的验证和学习是快速提升编程水平的有效方法之一。再配上一些新功能模块的使用,如各种传感器的使用、通讯模块的使用等,很快就可以设计出有一定规模的作品。作为自己水平的一种验证手段,可以参加一些社区组织的设计活动,它能不断去激发你前行的脚步,说不定偶而还能收获一些惊喜。参加对新品的一些测评活动,也能免费得到一些试用的先机。 5.有技能回归系统学习 伴随技能的提高,对系统性的要求也在提升,此时静下心全面、系统的读一些经典的理论书籍会起到事半功倍的效果。如《STM32库开发实战指南_基于STM32F4》等就是一些学习ST方面的系统而全面的书,大家不妨一读。 这便是我对ST学习的通关之路,不知你是否认同,水平有限仅供借鉴吧!
|