单片机入门(一)应用层软件开发的单片机学习之路基础知识入门腾讯云开发者社区

单片机。最小计算机运行系统,百度百科做的解释集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

可以看到,一个单片机基本上可以当作是一个小型计算机,具有存储,计算,输入和输出,计时定时器等能力,当然了,我们一台完整的计算机与我们进行交互,也是通过IO去进行交互,通过鼠标或者键盘连接到IO口上就可以在计算机上面进行输入输出,那普通的单片机上面的输入输出就需要通过单片机上面的IO口,就是那些针脚去进行通讯,可以看如下图,这是一个ESP32的一个单片机,上面包括了那么多的IO引脚,统称为GPIO,那么这个GPIO是何方神圣呢,GPIO的全称是General-purposeinput/output,翻译过来也就是通用的输入输出接口,在这个单片机上面一共有四十个gpio接口。

按照GPIO分类可以分为:

POWER,电源接口,下图这个开发板上面有一个3.3V和一个5V的一个电源接口,同时可以用来做输入或者输出电源,用来给单片机进行供电,或者复杂的接串联给整体项目中的所有电子元器件进行供电。

GND:电线接地端接口,上面的POWER是正极,那么GND就是电路中的负极,或者接地线路。

GPIO:就是可以作为通用的输入输出接口,可以用来和电子元器件进行交互,例如让一个LED灯亮起来,可以使用GPIO的输出高低位来进行让LED亮起来,高低位,则是给电子元器件进行释放电流或者关闭电流就是一个开关,这里不做过多解释,后面我们会做实验一步一步,让大家学会。

ADC:模数转换器,将输入的一个模拟信号的电压,转为数字,将输入的模拟电压或电流转换为表示电压或电流的大小的数字,获取到采集的数据,然后转为具体的数字,例如温度传感器,气压传感器等等,都是通过获取的模拟信号电压,转为具体的数字。

CONTROL:控制引脚,通常单片机带了一个EN的按钮用来重启单片机,如果将线路接入到这个EN引脚则可以控制单片机进行重启。

UART:串口通讯的一种,通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter),同一套UART,具有两个引脚,一个是RX,一个是TX引脚,RX用来接收数据,TX引脚用来写入数据,可以看到R的全称是Receiver用来接收,T的全称是Transmitter,用来传输数据,如果我们有一个USB转TTL模块,则可以使用PC和我们的单片机进行通讯发送接收数据,忘了提一嘴,通常用来做串口通讯的时候,RX引脚必须接通讯方的TX引脚,TX引脚和RX引脚相接,即A和B两个单片机,需要进行UART串口通讯,那么A的RX接口必须和B的TX接口相接,A的TX接口必须和B的RX接口相接,A接收数据来自于B的TX,A的发送数据A的TX然后A写入到B的RX,除非电子元器件有特别改动,通常情况都是RX接TX,TX接RX。

SPI:是串行外设接口(SerialPeripheralInterface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,分别是

首先从线的数量上,SPI就比UART多了两条线,同时在设备上,SPI可以支持多设备的全双工,但是同步的通讯总线,性能上可能不如UART,但是在设备之间,SPI比UART具有更多的选择性,由一个SPI主设备,进行给从设备通过设定好的地址进行发送数据,可以使用同一个SPI线路,控制多个电子元器件。

I2C:一个多主从的串行总线,又叫I2C,是由飞利浦公司发明的通讯总线,属于半双工同步传输类型总线。IIC总线是非常常见的数据总线,仅仅使用两条线就能完成多机通讯,一条SCL时钟线,另外一条双向数据线SDA。两条线一个SDA用来传输数据,一条SCL时钟线,用来控制数据收发,应答等等。TOUCH:ESP32板子上面带了十个不同的个电容式触摸板,DAC:ADC的逆转,ADC为模拟信号转为数字的电子元器件,那DAC则为将数字信号转为模拟信号从而转为电压的一种元器件。FLASH:esp32上面带了不同大小的内存,还可以自己进行分区,貌似有4M的,8M的,还有16的,用来存储一些小型文件,临时文件。PWM:脉冲宽度调制,输入不同的波形,可以用这个控制一些电子元器件的速率或者快慢调制,通过对PWM高低电平的占空比不同,进行控制。

以上为ESP32系列单片机的所有的GPIO功能讲解。后续我会带大家,去进行和不同的传感器进行交互来获取数据,单片机购买连接放在了最下方,我一直都是在这家店铺购买,并不是托,哈哈

其实针对于单片机,我所认为的是通过这些GPIO引脚去进行和电子元器件进行通讯,通过那些总线通讯方式进行收发数据,消息传递,同时底层是通过不同引脚的高低电平去进行控制。总之,单片机开发要懂一些常用的基础电路知识,不然很容易烧坏电路板,电子元器件,有钱可任意妄为,哈哈。

上面,我们对什么是单片机,以及单片机上面都有哪些引脚,都具备那些功能做了一个解释,那么接下来我们讲解一下ESP32开发环境在Arduino上面的一个配置。点击首选项

其实使用VSCODE也可以开发这个在Arduino上配置好之后,在Vscode中下载Arduino插件即可使用Vscode进行配置,取决于开发者,同时VSC开发还可以直接使用原生c语言进行开发,

可以参考i乐鑫官网给出的步骤,快速入门-ESP32-—ESP-IDF编程指南v4.4.2文档(espressif.com)[2],这个文档还是很不错,使用原生c语言进行开发,其难度也相较Arduino难一些,我是刚开始使用这个环境开发的,后来换成了Arduino相对简单一些,同时还可以像c#的nuget一样去搜索自己想要的库,同时也有例子,相对简单一些。

THE END
1.软件开发需要学习哪些东西,小编今天为大家整理如下相关产品:软件开发需要学习哪些东西 , 小编今天为大家整理如下 关于东莞市数云网络科技有限公司商铺首页|更多产品|联系方式|黄页介绍 主要经营:数字藏品系统开发,元宇宙系统开发,嗨购模式,广告电商系统,泰山众筹模式,分享购cps系统、定制开发、请联系18002820787模式快速开发.APP软件系统公众号小程序开发APP软件系统公众号小https://product.11467.com/info/20852241.htm
2.初学者如何学好软件编程?从零基础到精通,收藏这篇就够了!能找到哪些工作呢 软件开发工程师 Java程序员 WEB前段工程师 运维工程师 … 选择很多 那在成为程序猿前 我们还是要去进行系统的学习 在深圳科创学习 能提高专业能力、实践能力和创新思维 毕业后适应社会并成为各行业的专精人才 专业课程 Java开发 前端UI https://blog.csdn.net/A1_3_9_7/article/details/144376756
3.软件开发的本质,分层结构的合理性,各阶段内容与规约的简单说明具体来说,软件开发的目的是将现实世界中的问题、需求、概念和处理逻辑等映射到计算机运行平台上的概念和处理逻辑,从而实现软件的各项功能。 这一实现映射的过程必定伴随着复杂性。为控制这一映射的复杂性,需要对从问题域的概念和处理逻辑到运行平台的概念和处理逻辑映射进行分层。即分为需求层、设计层、实现层、部署层https://www.bilibili.com/read/cv36272034
4.成为JAVA软件开发工程师要学哪些东西修行,波动线*第十阶段:Servlet开发,从此开始踏入java开发的重要一步,包括XML,Tomcat服务器的安装使用操作,HTTP协议简单理解,Servlet API等,这个是java web开发的基础。 *第十一阶段:JSP开发:JSP语法和标签,自定义标签,EL,JSTL库了解以及MVC三层架构的设计模式理念; *第十二阶段:AJAX开发:AJAX原理,请求响应处理,AJAX开发库; *https://www.cnblogs.com/liuzhi/p/4065805.html
5.手机app开发电脑要安装哪些软件,要学哪些东西4条回答:【推荐答案】上百度传课,里面有你想要的学习资料,很复杂,要自己配置开发环境,里面有视频的,自己去找找吧,内容很丰富的https://wap.zol.com.cn/ask/x_1464204.html
6.软件开发学习理论学习固然重要,但实践才是软件开发学习的核心。尝试完成一些小项目,如开发一个简单的网站或游戏,这将帮助你巩固所学的知识,同时也能让你体验到软件开发的全过程。此外,参与开源项目也是一个很好的学习机会,你可以看到其他人是如何编写代码的,从中学习到新的技术和方法。五、持续学习和更新知识软件开发是一个不断https://aiqicha.baidu.com/qifuknowledge/detail?id=10062428629
7.软件开发需要学什么软件开发流程介绍→MAIGOO知识学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础。有了这个基础,学起来可以事半功倍。当然,对数学、英语的要求也没有想象中的那么高。 2、基础编程语言 编程语言是学软件开发的钥匙,初学者好根据自身的喜好或者职业规划选择语言。目前主流的编程语言包括Java、PHP、.net、C#语言等,新手建议https://www.maigoo.com/goomai/177198.html
8.软件开发工程师需要学什么,软件开发需要学什么5,软件工程师要学哪些 1,软件开发需要学什么 软件开发工程师需要学指导程序员的工作;参与软件工程系统的设计、开发、测试等过程;协助工程管理人员保证项目质量;负责工程中主要功能的代码实现;解决工程中的关键问题和技术难题。 这个学习有很多比如前端开发和后端开发之类的 http://www.lisdn.com/mnsj/hhjy/508158.html
9.做程序员需要学哪些东西wx6225b14cdec17的技术博客做程序员需要学哪些东西 在软件行业,软考是一项重要的国家级考试,为考生提供了成为程序员的机会。通过软考,考生可以获得相应的职业资格证书,证明自己在计算机技术与应用方面具有一定的专业能力。那么,对于有意向成为程序员的考生来说,需要学习哪些东西呢?本文将详细介绍软考做程序员所需掌握的技能和知识。https://blog.51cto.com/u_15538975/8152484
10.软件开发如何入门当我刚开始学习软件开发的时候,我根本毫无头绪。 我感觉很沮丧。所有的东西我都看不懂,我甚至不认为我可以“掌握”编程。 我之所以告诉你这点是因为我觉得既然你选择了我这本书,说明你可能跟我那时的感觉是一样的。 不要担心,这很正常。事实上,这根本就是常态。 https://www.jianshu.com/p/751b3368adab
11.《编程的原则》读书笔记(三):软件架构的基本技法和非功能需求我们要把基本技法应用到代码之中。基本技法不是从某种软件开发技术中总结出来的。这些技法是更为本质的东西,它们适用于一切开发方法以及编程语言。 软件架构基本技法 抽象 软件架构基本技法之①:抽象 Abstraction 抽象,是指在概念上明确划清界限,这种明确划清界限的方式可以将一个模块与其他模块区分开来。抽象由: https://xie.infoq.cn/article/cb1e34a8d69f8ceff19bab27f