如何学习单片机编程?我是一位单片机爱好者,对于如何学习编程,还是深有体会的。

首先,要具备有单片机方面的基础知识。我在校学过8051单片机汇编语言和FORTRAN语言,再就是微机原理和单片机工作原理,以及模电、数电、电路分析和电器控制。基础知识,我是有了,但你们发现没有,我没有学过C语言。我和大多数毕业生一样,基础会一点,但不是很熟悉。工作后,我对自己进行分析,发现除了做技术,别无他长。于是,我边工作边复习书本上的知识,并且还做了详细的笔记,把认为有价值的东西记在笔记本上,包括抄电路图,抄程序,并记录学习的心得体会。因为我熟悉8051单片机,当然学习的是这种单片机。由于那时网络不发达,信息闭塞,和外人交流很难,只能靠自己去理解,有时为了一个问题需要考虑很多天,问周围的人他们也不懂。一个偶然的机会,我遇到一位中专生,从他那里搞到KEIL编译器和烧录器,然后向他学习怎么编译生成HEX文件和烧录程序。单片机最简单的编程,就是对IO口进行操作,我很快就可以烧录自己的程序了。但是,他告诉我,你不会C语言,将来很难提高。于是,我又开始自学C语言。由于有FORTRAN语言基础,理解C语言还是比较容易的。为了能记住知识要点,我总是先看书,然后做笔记,有时还要到电脑上调试仿真,看看自己理解的和别人的结果是不是一样。当然一开始写程序时,就是把别人的代码看懂,然后在电脑上抄一遍,再编译,运行。有时候抄都能抄错,不是少了分号,就是少了逗号,最要命的就是用了中文符号。搞错了,自己也找不到原因,请教别人,别人说忙,懒得帮我看。总之,要先有单片机基础知识,才可以自学,否则,还是去花钱去培训机构学习吧。

其次是动眼、动脑、动手,多问,多总结。我叫它“三动两多”。动眼,就是看和单片机有关的书。动脑,就是思考和学习和单片机有关的问题,包括分析问题,解决问题。动手,就是写代码,编译调试程序。多问,就是多问自己为什么,有没有其他更好的方法来实现,包括给自己提问题,能找到老师问更好,大多是没有老师的,只能靠自己了。多总结是很重要的,避免下次踩坑。勤能补拙,书山有路勤为径,学海无涯苦作舟。你既然选择了技术,就选择了一辈子都在勤劳中度过。尤其是在打基础的时候,这几点必须要牢记。

再次就是测试单片机上所有的硬件资源。单片机的硬件资源通常有边沿中断、电平中断、IO输入输出,定时器、计数器、串口、复位等,以及I2C通讯和SPI通讯。将这些硬件通通写一个测试程序,看看运行结果和自己的设计意图是否一致。这样做的好处是,防止时间久了,自己会遗忘。能买到开发板最好,没有板子,只能软件仿真了。另外写程序时一定要做注释,多看看高手写的程序,不单单是看功能,还要看人家的代码书写风格,养成良好的编程习惯。如果能把单片机的硬件资源全部测试完了,基本上算是入门了。千万不要把别人代码编译烧录测试,但我们可以先读懂,然后按照他的功能要求,自己写一个程序测试,总比不动脑子要好。或者搞清楚别人写的好处在哪里,哪些地方是值得我们将来学习和借鉴的,以便用在将来的设计中。

最后就是找个项目提升自己。由于刚上路,胆子小,怕做不好,这种不自信的心理都是正常的。人生总是有很多第一次,过了这一关,就可以升级自己了。通常大公司不会给你这个机会,估计你得跳槽了,通常来说,小公司的机会较多。通常干两三个项目,基本上可以算是单片机工程师了。

找熟悉的单片机入门,先体验编程。不要一上来就搞系统,先学好裸机。因为问题会让你的热情消失殆尽,除非你有坚强的意志力,从简单入手,培养兴趣。让CPU带上系统,一般都需要走很长一段路。一是没人带,二是自己问题,三是老师不中。学习知识,有引路人会事半功倍。当然,仅满足于裸机的人,技术上很难走远。我们的目标就是走嵌入式之路。总之,能坚持下来的,都是精英。这期间会遇到各种困难,特别是在没人帮你的时候,你会更加孤独。兴趣是第一老师,你的热情不会因此而减退,狂热的追求,任何困难都无法阻止你前进的步伐。

最后祝大家准备过苦行僧的日子吧,让孤独永远伴随着你,你和单片机结婚吧。

如何学习单片机编程?相关推荐

  1. 怎么学习单片机编程?单片机基础入门内容有哪些

    怎么学习单片机编程?其实吧,单片机学习起来不难,反而是一件比较有趣的事情,之所以新手感觉比较难是因为不知道该怎么入手,从哪里开始学起.那么要怎样才能从单片机的基础入门呢? 单片机的学习无外乎两个内容: ...

  2. 怎么学习单片机编程?粤嵌单片机基础入门内容

    怎么学习单片机编程?其实吧,单片机学习起来不难,反而是一件比较有趣的事情,之所以新手感觉比较难是因为不知道该怎么入手,从哪里开始学起.那么要怎样才能从单片机的基础入门呢? 单片机的学习无外乎两个内容: ...

  3. 零基础学c语言要多久,零基础学习单片机编程需要多长时间?

    单片机自学要多长时间 学习单片机就是学习单片机的硬件结构,内部资源与外设的应用.在C语言中(极少量的汇编)掌握各种功能的初始化,启动与停止,实现各种功能函数的编写与调试. 下面咱们就来分步骤看一下对于 ...

  4. 学习单片机编程第一天——点亮一个LED灯

    必要的一点说明:使用keil5编写程序,在STM32F103C8T6单片机上运行. 跳过无聊的新建工程文件等步骤,此次项目我们只针对三个文件进行操作,分别是: main.c         led.c ...

  5. 单片机编程软件很简单(二),keil单片机编程软件心得秘笈

    单片机编程软件为常用软件之一,单片机开发人员均用过多款单片机编程软件.那么,用单片机编程软件进行开发时,大家是否有独特新得呢?本文对单片机编程软件的讲解基于Keil C51,主要为大家介绍使用这款单片 ...

  6. 干货分享:单片机编程学习攻略!

    点击上方"大鱼机器人",选择"置顶/星标公众号" 福利干货,第一时间送达! 阅读本文大概需要 3 分钟. 目前,一个学习与应用单片机的高潮正在工厂.学校及企事业 ...

  7. 单片机编程入门学习 这几问你能回答吗?

    单片机编程入门学习前,大家即使对单片机的了解浅薄,相信也明白C语言在单片机学习的重要性.至于再深入,可能就比较懵逼了. 1.C语言和汇编语言在开发单片机时各有哪些优缺点? 答:汇编语言是一种用文字助记 ...

  8. 我是怎么提高单片机编程能力的?

    我对编程的兴趣源于黑客- 没想到最后竟然走了单片机开发的路线,或许是现实不允许我有梦想. 黑客的成长过于漫长,而我当务之急是找份工作糊口. 我并不是计算机专业,临近毕业对编程也一窍不通. 第一次自学的 ...

  9. 32单片机编程简单吗?单片机程序与桌面编程哪个难?

    STM32单片机编程对很多新手来说就像"天书". 我当初是学习了51单片机,然后就去找工作了,这已经是10年前了. 刚进入公司,老板先是让我维护老产品,也就是stc单片机做的项目, ...

最新文章

  1. 头文字C的混战何时方能休?论从某语言怎么怎么样到我要怎样怎样的语言
  2. java编程中的断言工具类(org.springframework.util.Assert)
  3. 活跃用户数怎么计算_不懂LTV,怎么做用户增长?详解用户生命周期价值计算方法...
  4. Codeforce-CodeCraft-20 (Div. 2)-B. String Modification (找规律+模拟)
  5. C语言中#define中的一些特殊用法
  6. 如何下载linux历史版本下载,CentOS历史版本下载方法
  7. memcache_engine + memcachedb = 高性能分布式内存数据库
  8. dojo中chart参数
  9. 调取方法_最新微信调取转账证据新方法公布
  10. 音频格式之AAC(高级音频编码技术)
  11. ASPECT RATIO
  12. 产品设计体会(0013)产品经理应该是管理者么
  13. 常用进制数转换(二进制、八进制、十进制、十六进制)【数电笔记】
  14. 怎么监控mysql数据变化_实时监控mysql数据库变化
  15. Highcharts去掉右下角URL水印
  16. 中企海外周报 | 华为企业业务将首登MWC;中国平安加速印尼金融业数字化转型...
  17. 冥冥之中——汶川地震嗟叹
  18. Python实现 身体质量指数BMI的计算(嵩天老师)
  19. Tanner L-Edit 系列教程:03 文件操作
  20. 常用域名记录解释:A记录、CNAME记录、AAAA记录等

热门文章

  1. 【人工智能深度学习】人工智能中的梯度下降算法和反向传播教程
  2. opencv 内存数据转matlab,OpenCV:IplImage, CvMat, Mat 相互转换
  3. 贪吃蛇小游戏java实现代码分析
  4. ssm+jsp计算机毕业设计高速公路管理系统设计与实现e6hx6(程序+LW+源码+远程部署)
  5. 云平台支持哪些java应用服务器_腾讯云部署javaWeb项目之一应用服务器
  6. 广东省软考报名时间成绩查询广东省教育考试院广东省人事考试网报名入口
  7. nvm use 报错 exit status 1: ��û���㹻��Ȩ��ִ�д˲�����
  8. Eclipse安装插件swt实现可视化编程
  9. 实现两个数交换python_编写一个程序,用于实现两个数的交换。_学小易找答案
  10. Web前端期末大作业--响应式个人日志博客网页设计(HTML+CSS+JavaScript)实现