编程技术是改变世界的力量。
本站
当前位置:网站首页 > 后端语言 > 正文

被绕晕了,嵌入式用C好还是用C++好

gowuye 2024-04-29 16:10 15 浏览 0 评论

单片机最好是用C,不过用C++会更温馨一些。由于单片机上写C++代码更流畅,开发效率贼快了。重要关键是不容易出错。


说白了,能够用C的都能够没区别的用C++,这是C++一初始创立的时候就定位好了的。在接近机器性能方面除了C,不给其他语言任何时机。


顺便说一句,我此时就在开发嵌入式,而且C++版本足够用。


假如auto thread for(auto& i : container)


其实吧,问题不在单片机,而是在于国内落后的C++教学环境。国内大学那些教师教的C++不叫C++,叫半路出家。


假如,国外的C++数据构造课程都要求学生达到模板,迭代器,输出操作符重载。这样的根底设施,我敢打包票,国内大学计算机教师,包含所有985大学,能自己写一个完整的欧美国家C++数据构造作业的都不多。


想学好单片机,以下步骤一定的做好,否则你永远都是行外人


第二步:单片机实战


这是真正进修单片机的过程,既让人兴奋又让人疲惫,其中的酸甜苦辣独有学过的人深有体会。思想上要有刻苦进修的决心,硬件上要有一套完整的进修开发工具,软件上要注重理论和实战相联合。

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///


有一套完整的进修开发工具


进修单片机是须要老本的。必需有一台电脑、一块单片机开发板(假如开发板不能直接下载程序代码的话还得须要一个编程器)、一套视频教程、一本单片机教材和一本C语言教材。


电脑是拿来编写和编译程序,并将程序代码下载到单片机上;开发板拿来运行单片机程序,验证现实中效果;视频教程就是手把手教单片机开发环境的运用、单片机编程和调试。


对于单片机初学者来说,视频教程必需看,要不然,哪怕把教材看了几遍,还是不知道怎么样下手,尤其是院校里的单片机教材,学了之后,面对真正的单片机时可能还是束手没策;单片机教材和C语言教材是理论进修资料,备忘备查。不要为了节省老本不用开发板而光用Protur软件仿真调试,这和纸上谈兵没什么差别。


要注重理论和实战相联合


单片机C语言编程理论知识并不深奥,只看书不动手也能明白。但在现实中编程的时候就没那么简略了。一个程序的构成不仅须要有C语言知识,更多须要融入个人的编程思维和算法。


编程思维和算法决定一个程序的优劣,是单片机编程的大问题,独有在现实中动手编写的时候才会有深切的感悟。一个程序能否依照意愿正常运行就要看思维和算法是否正确、合理。假如程序不正常则要反复调试(检查、修改思维和算法),直到成功。这个过程耗时、费脑、疲精神,意志不刚强者往往被绊倒在这里半途而废。


进修编写程序应该依照以下过程进修,效果会更好。看到例程题目先试着构思自己的编程思维,其次再看教材或视频教程里的代码,钻研人家的编程思维,注意与自己思维的差异;之后就照搬人家的思维亲身动手编写这个程序,领会其中每一条语句的作用;对有疑问的地方试着依照自己的思维修改程序,比较程序运行效果,领会其中的奥妙。


每一个例程都坚持依照这个过程进修,很快会找得到编程的感觉,取其精髓去其糟粕,久而久之会构成独特的编程思想。


当然,刚初始,看他人的程序源代码就像看天书一样,只有硬着头皮看,看到不懂的重要关键字和语句就翻书查阅、对照。只有能坚持下来,进修收获会事半功倍。


在实战过程中不仅要学会他人的例程,还要在他人的程序上改进和拓展,让程序产生更壮大的功能。同时,还要懂得通过查阅芯片数据手册(DATASHEET)里相关芯片命令和数据的读写时序来核对他人例程的可靠性,假如觉得例程不可靠就把它修改过来,成为自己的程序。不仅如此,自己应该经常找些项目来做,以稳固所学的知识和积攒更多的经历。


第三步:单片机硬件设计


当编写自己的程序信手拈来、浏览他人的程序能够发现问题的时候,证明自己单片机编程水平相当不错了。之后就应该钻研的硬件了。硬件设计包含电路原理设计和PCB板设计。


进修做硬件要比进修做软件麻烦,老本更高,周期更长。但是,进修单片机的最终目标是做产品开发----软件和硬件相联合构成完整的控制系统。所以,做硬件也是进修单片机技术的一个必学内容。


电路原理设计波及到各种芯片的应用,而这些芯片外围电路的设计、典型应用电路和与单片机的连接等在芯片数据手册都能找得到答案,前提是要看得懂全英文的数据手册。


否则,照搬他人的设计永远落在他人的后面,做的产品就没有创意。电子技术领域的第一手资料(DATASHEET)都是英文,从第一手资料里所获得的知识可能是在教科书、网络文档和课外读物等所没有的知识。


虽然有些资料也都是在DATASHEET的根底上撰写的,但内容不全面,甚至存在翻译上的遗漏和错误。当然,浏览DATASHEET须要具备一定的英文浏览才能,这也是妨碍单片机进修者晋级的绊脚石。


在了解电路的含义之后,在进行关于PCB板的有关设计就比较简略了,在这一阶段只有对一些常见的PCB软件能够运用即可,如Protel、AltimDesigner,但假如要求最终的布线效果具有一定的美观度就须要花费一些时长了。


总的来说,作为一名单片机设计者,只有能够驾驭单片机C语言编程,并且能够运用常用PCB软件进行设计画板,此外再具备一定的英文根底。那么一定会成为一名超强的单片机高手。

对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就行,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取

相关推荐

Redis 开发准则三(命令使用准则)
Redis 开发准则三(命令使用准则)

关注O(N)命令中的Nhgetall、lrange、smembers、zrange、sinter等命令建议不要过多地使用,当使用时,需要明确N的值。...

2024-05-21 16:53 gowuye

3月技术栈更新丨ES、Redis、RocksDB、Logstash等版本发布汇总

本文汇总了数据库、大数据、运维领域近一个月的软件更新信息,包括:Elasticsearch、Redis、RocksDB、SQLite、CrateDB、Logstash、Grafana,供大家参考,紧跟...

Redis中BigKey的分析与优化
Redis中BigKey的分析与优化

Redis中BigKey的分析与优化Redis以其出色的性能和易用性,在互联网技术栈中占据了重要的地位。但是,高效的工具使用不当也会成为性能瓶颈。在Redis...

2024-05-21 16:53 gowuye

设计模式(五)行为型模式

前言在上一篇结构型模式中,我们以功能为基本单位,研究了一些设计模式,用于实现功能转换、功能组合、功能封装等目的。我们知道,面向对象编程有两个核心元素:对象、对象间通信协作。从面向对象的角度看,任何系统...

自学Java多久可以找到12k的工作?
自学Java多久可以找到12k的工作?

大家好,我是大彬~我本科学的不是计算机,大四开始自学Java,并且找到了中大厂的offer。在这里也提醒学弟学妹们,要尽早确定以后的方向,读研还是工作,找工作的...

2024-05-21 16:53 gowuye

大厂程序员整理的 C++ 资源大全,不私藏了,都送给你们吧
大厂程序员整理的 C++ 资源大全,不私藏了,都送给你们吧

关于C++框架、库和资源的一些汇总列表,由fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分...

2024-05-21 16:52 gowuye

代码保护软件VMProtect都有哪些内置功能?字符串的作用是什么?

VMProtect是一种很可靠的工具,可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果。本文对VMProtect中强大...

吐血整理:C++编程语言资源汇总
吐血整理:C++编程语言资源汇总

关于C++框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。有需要的小伙伴可以收藏一下...

2024-05-21 16:52 gowuye

lettuce客户端底层bug,看完手撕面试官
lettuce客户端底层bug,看完手撕面试官

简介:lettuce客户端底层、READONLYYoucan'twriteagainstareadonlyreplica.出现的现象:...

2024-05-21 16:52 gowuye

Zig是码农们期待已久的C语言的替代品吗?
Zig是码农们期待已久的C语言的替代品吗?

与以前的C竞争者(例如C++,D,Java,C#,Go,Rust和Swift)的比较从很多方面来说,我整个编程生涯都像是在等待C的替代产品的漫长等待。20年前...

2024-05-21 16:51 gowuye

redis批量删除指定前缀key四种方法(收藏)
redis批量删除指定前缀key四种方法(收藏)

这篇文章主要介绍了redis批量删除指定前缀key四种方法。目录redis批量删除指定前缀key四种方法第一种:第二种:第三种:第四种:Redis如何批量删除...

2024-05-21 16:51 gowuye

一篇详解Redis -- 延时队列
一篇详解Redis -- 延时队列

Redis的list数据结构常用来作为异步消息队列使用,使用rpush/lpush操作入队,使用lpop/rpop来操作出队>rp...

2024-05-21 16:50 gowuye

分析流媒体服务器源码:Rtmp发布流程的SRS解析

线程模型srs使用了state-threads协程库,是单线程多协程模型。这个协程的概念类似于lua的协程,都是单线程中可以创建多个协程。而golang中的goroutine协程是多...

推荐一款快速学习的神器
推荐一款快速学习的神器

这是学习笔记的第2074篇文章记得自己学习一门技术的时候,总是会走很多的弯路,就好比你去了一个景点,这是在门口转一下,打个卡,其实是没有任何收获的,而且随...

2024-05-21 16:50 gowuye

美团三面:请设计一款任务延迟执行器

#求职面试大家说##java##金三银四#在设计一个任务延迟执行器时,需要考虑任务的调度、存储、执行、容错、重试机制、监控等多个方面。以下是一个基于Redis的延迟执行器设计方案以及相应的Jav...

取消回复欢迎 发表评论: