|
发表于 2023-11-18 15:35:29
|
显示全部楼层
学习单片机,肯定是51入门,建议用KeilC,调试程序比较方便,先用最简单硬件平台,C语言开始先不要使用指针,试着写跑马灯>>>读写串口(学会用串口作为调试的一种手段,会终身受益)>>>使用定时器>>>读取键盘>>>使用外部中断>>>驱动数码管>>>读写IIC EEPROM>>>驱动LCD>>>扩展IO/RAM/ROM,等把一款单片机所有的内部模块都玩会,顺带摸透单片机里的各种寄存器,基本上C语言已经能简单应用了,这时如果想提高C语言水平,可以学习使用C指针.搞单片机开发,不会用指针也能玩好,但没法发挥C语言的强项,C教材都有涉及指针方面的知识,只要用心学,一般一周左右可以熟练运用了(因人而异,汗).
下面就可以试着做一个综合性的小项目练练手,例如将前面学习的简单例子综合在一起,这时候就需要学习多文件源程序的管理,keilC在这方面很友好,将源文件加入工程就好,这期间主要学习编写复杂点的逻辑代码,全局变量的管理,C语言的知识点,宏定义>>>数据结构>>>联合体>>>枚举>>>函数指针等等,在这个小项目中尽量能够用上这些知识,如果都能做到,已经可以熟练应用C语言.
到这一步,会面临不同选择,有点人偏向于硬件,例如尝试玩这种单片机,有的人选择偏向于软件,例如选择一款ARM平台,从简单的RTOS开始玩起,比如keilM自带RTX,可以使用标准C库,把它玩好了,也就对操作系统也熟悉了,也可以玩玩其他简单的RTOS如UCOS,freertos,rt-thread等,这些RTOS基本思路都一致,有了keil RTX的基础,学习起来都很容易,当然前面列出的RTOS,学习顺序可以根据自己的兴趣决定,玩精通一种便可.以后可以玩更高性能的ARM(或其他架构),玩更高深的linux,玩到这一层次,会发现前面学习的知识只是一条小溪流,后面要接触的却一片汪洋,里面有穷其一生也学习不完的知识,但是玩单片99%的人都一直在小溪流里洄游,离大海还很远.
能从51单片机玩到linux,算是嵌入式了,不局限于硬件和软件,两者都应该通吃设计到,搭建硬件平台(使用核心板或从头搞起)>>>搭建linux内核编译平台>>>编译linux内核>>>移植新硬件编写驱动程序>>>给APP开发任意搭建运行环境>>>编写linuxAPP,这是嵌入式linux路线,还有一条Android计算路线,只有最后一步是编写的安卓APP,前面的步骤相同,.如果是搞linux应用,需要学习gcc+make编译工程>>>调取系统显示缓存显示画面>>>接入鼠标/键盘/触摸屏>>>应用网络/wifi+网络编程(如果需要联网),如果是安卓路线,恶补Java知识>>>搭建android开发环境>>>编写安卓APP,
C语言玩好了,也可以转PC软件路线,也可以继续玩硬件,每个人在学会了一项技能后都会有更多选择等着你.没有人能全知全会,必须学会在一些时间节点选择什么放弃什么,只有学会的才是自己的.
楼主如果已经有了一点单片机基础,建议STM32/arduino选择一条路,深耕下去,对什么感兴趣就学什么.如果楼主年龄比较大的话,建议玩玩arduino吧,它容易入门,容易做出东西,网上的资料也多,硬件也好搞. |
|