Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【单片机入门】(一)应用层软件开发的单片机学习之路-----基础知识入门

【单片机入门】(一)应用层软件开发的单片机学习之路-----基础知识入门

作者头像
沙漠尽头的狼
发布于 2022-11-25 02:07:10
发布于 2022-11-25 02:07:10
1.4K0
举报
文章被收录于专栏:Dotnet9Dotnet9

本文由网友投稿,站长是一点都不懂硬件。 作者:陈显达 原文标题:【单片机入门】(一)应用层软件开发的单片机学习之路-----基础知识入门 原文链接:https://www.cnblogs.com/1996-Chinese-Chen/p/16786374.html

引言

工作了五六年,一直都是以软件为主,期间也是各个方向都玩,移动端,PC端,网页端,后面在去年西安疫情的那一个月,突然觉得硬件也有很多可玩之处,相比于软件,看得见摸得着的东西可能更容易令人接受,做出成品也更容易有成就感,所以在那段时间我就去研究了一下树莓派,然后当时用node还有c#操控树莓派来进行和传感器等电子元器件进行交互,感兴趣的可以看看我之前的文章C#控制树莓派入门 - 四处观察 - 博客园 (cnblogs.com)[1],这篇文章仅仅用了做树莓派的入门,实际上,和我们这篇单片机的入门实际上也是有一些共性相通的地方。接下来,让我们一起了解一下单片机的入门基础知识吧。

何为单片机

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

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

单片机接口

按照GPIO分类可以分为:

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

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

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

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

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

UART:串口通讯的一种,通用异步收发传输器(Universal Asynchronous Receiver/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:是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,分别是

  • (1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;
  • (2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;
  • (3)SCLK – Serial Clock,时钟信号,由主设备产生;
  • (4)CS – Chip Select,从设备使能信号,由主设备控制。

首先从线的数量上,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功能讲解。后续我会带大家,去进行和不同的传感器进行交互来获取数据,单片机购买连接放在了最下方,我一直都是在这家店铺购买,并不是托,哈哈

【手机天喵】https://m.tb.cn/h.UdRqdqk?tk=MoLs2BOBtEQ CZ3457 「ESP32开发板WIFI+蓝牙2合1双核ESP32核心板无线蓝牙开发板」

单片机结语

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

环境搭建

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

在此处可以配置项目文件夹,新建项目的存放文件夹,以及开发板的配置,点击附加的开发板网址,在弹出的界面中写入https://dl.espressif.com/dl/package_esp32_index.json,这个网址,用来配置ESP32的相关开发包。然后可以在工具,开发板,开发板管理中搜索ESP32,然后点击安装即可,但是此处需要梯子才可以下载,否则下载会很慢,可以自己去GITHUB下载后然后放在Arduino本地新建一个hardware文件夹,里面文件夹名称路径就和我图的一样否则环境配置失败是无法读取配置信息。

github下载地址:https://github.com/espressif/arduino-esp32,下载后将里面的文件放进hardware/espressif/esp32文件夹中去,然后点击tools/get.exe,会去下载配置环境等待结束就可以找到ESP32的开发板,这中间下载速度可能会很慢,我会把所有的东西一并上传,然后下载稍作修改后就可以使用了。

下载地址:http://121.43.235.192:8082/s/Be88gki4eSFSMFs

结语

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

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

后续文章会玩一些简单的电子元器件,今年做智能小车一共做了三个,同时买的电子元器件也有很多,后续我会一一带大家去学习,去玩,然后有必要的话,也会直播做一些讲解,方便更好的入门学习,有兴趣的小伙伴可以持续关注,环境方面不懂的也可以随时加这个群找我,这个群,用来对单片机感兴趣的小伙伴的专属群,大家一起学习一起进步,目前玩的是ESP的板子,后面也会使用51或者STM系列的,有兴趣的可以一起研究,一起学习。

参考资料

[1]

C#控制树莓派入门 - 四处观察 - 博客园 (cnblogs.com): https://www.cnblogs.com/1996-Chinese-Chen/p/15940379.html

[2]

快速入门 - ESP32 - — ESP-IDF 编程指南 v4.4.2 文档 (espressif.com): https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32/get-started/index.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dotnet9 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【单片机入门】(一)应用层软件开发的单片机学习之路-----基础知识入门
工作了五六年,一直都是以软件为主,期间也是各个方向都玩,移动端,PC端,网页端,后面在去年西安疫情的那一个月,突然觉得硬件也有很多可玩之处,相比于软件,看得见摸得着的东西可能更容易令人接受,做出成品也更容易有成就感,所以在那段时间我就去研究了一下树莓派,然后当时用node还有c#操控树莓派来进行和传感器等电子元器件进行交互,感兴趣的可以看看我之前的文章C#控制树莓派入门 - 四处观察 - 博客园 (cnblogs.com),这篇文章仅仅用了做树莓派的入门,实际上,和我们这篇单片机的入门实际上也是有一些共性相通的地方。接下来,让我们一起了解一下单片机的入门基础知识吧。
陈显达
2022/11/07
1.4K0
【单片机入门】(一)应用层软件开发的单片机学习之路-----基础知识入门
【单片机入门】(三)应用层软件开发的单片机学习之路-----UART串口通讯和c#交互
在第一章博客中,我们讲了Arduino对Esp32的一个环境配置,以及了解到了常用的一个总线通讯协议,其中有SPI,IIC,UART等,今天我为大家带来UART串口通讯和c#串口进行通讯的一个案例,以及什么是中断,中断的作用和实践,话不多说,让我们正式开始。
沙漠尽头的狼
2022/11/25
1.7K0
【单片机入门】(三)应用层软件开发的单片机学习之路-----UART串口通讯和c#交互
C#控制树莓派入门
     许久没有写博客了,十二月份西安疫情的影响,居家隔离了一个多月,在其期间,学习了一下树莓派,觉得硬件还是挺有意思的,刚好也看到了巨硬有提供使用c#用来开发树莓派应用的解决方案叫Net Iot,就自己买了一个树莓派入手,尝试用c#去控制树莓派的各个引脚,当然,Net Iot不仅仅支持树莓派一个开发板,同时支持Arduino开发板,以及香橙派,荔枝派,不过目前只是入手了树莓派,所以此处以及后续开发板会以树莓派为主,后面可能也会出乐鑫ESP32单片机的入门教程,接下来我们了解一下什么是树莓派吧。
陈显达
2022/11/07
1.8K0
C#控制树莓派入门
【单片机入门】(四)应用层软件开发的单片机学习之路-----ESP32开发板PWM控制电机以及中断的使用
各位大佬,晚上好啊,在上一篇博客中,我们讲了什么是UART串口通讯,以及使用USB转TTL使得单片机可以和c#上位机做一个串口通讯,接下来,为大家带来PWM的概念原理,以及实际案例,使用PWM对电机进行速度调制,因为本课程的最后是做一个红外遥控的智能小车,所以是需要电机四个,驱动四个,轮胎四个,所以PWM对于最后的成果也是极为重要,并且在实际开发中,PWM也是比较常用的调速方式。
沙漠尽头的狼
2022/11/25
1.3K0
【单片机入门】(四)应用层软件开发的单片机学习之路-----ESP32开发板PWM控制电机以及中断的使用
【单片机入门】(四)应用层软件开发的单片机学习之路-----ESP32开发板PWM控制电机以及中断的使用
各位大佬,晚上好啊,在上一篇博客中,我们讲了什么是UART串口通讯,以及使用USB转TTL使得单片机可以和c#上位机做一个串口通讯,接下来,为大家带来PWM的概念原理,以及实际案例,使用PWM对电机进行速度调制,因为本课程的最后是做一个红外遥控的智能小车,所以是需要电机四个,驱动四个,轮胎四个,所以PWM对于最后的成果也是极为重要,并且在实际开发中,PWM也是比较常用的调速方式。
陈显达
2022/11/14
2.1K0
【单片机入门】(四)应用层软件开发的单片机学习之路-----ESP32开发板PWM控制电机以及中断的使用
ESP32 DEVKILTv1(devkitv1)开发板全解析!!!(搭载芯片为ESP32D0WDQ6)
平时去淘宝买ESP32的开发板,20出头大概率是这个板子,那我们这篇就来完完整整的将芯片进行挖掘,解决我们的引脚配置,硬件设置等等相关的问题,以后不再纠缠相关的问题.
云深无际
2021/07/23
16.4K5
ESP32 DEVKILTv1(devkitv1)开发板全解析!!!(搭载芯片为ESP32D0WDQ6)
物联网开发板各种各样,要怎么选择?
现在物联网比较火,家里有各种智能设备,智能灯,智能空调,智能音箱,不做点智能的电器都拿不出手了,所以我也想了解下,在查了一些资料总结了下面的一些开发板,希望能对新入手的和我一样的小白有帮助。废话不多说了,出发吧。
香菜聊游戏
2021/10/19
2.3K0
物联网开发板各种各样,要怎么选择?
单片机入门第二课----点灯大师
在上一博客中,我们正式开始了单片机的学习之路,讲了单片机的概念,以及我们使用的ESP32系列的单片机的IO引脚,讲了什么是GPIO,以及相关的总线通讯概念(UART,IIC,SPI),脉冲调制概念(PWM),以及信号数字互转的(ADC和DAC),板子自带的一些功能,在今天的博客中,我会带你们正式进入控制硬件的第一课;
沙漠尽头的狼
2022/11/25
4210
单片机入门第二课----点灯大师
Arduino1.8.13+ESP32初体验
设备就是个surface pro3 ,也没有安装arduino所以就连安装的过程也写一下
云深无际
2020/11/19
2.4K0
Arduino1.8.13+ESP32初体验
随讲单片机与Arduino
我相信所有嵌入式和创客DIY的人都对Arduino有所了解,但是Arduino到底是什么?Arduino和单片机的关系是什么?这篇就来好好说说,让刚接触的人有一些了解。
跋扈洋
2021/01/29
1.5K0
手把手教你自制基于TencentOS Tiny的智能甲醛监测仪
甲醛是室内一项非常重要的指标,对眼、鼻、喉的黏膜有强烈的刺激作用,最普遍的症状就是眼睛受刺激和头痛,严重的可引起过敏性皮炎和哮喘。由于新房装修场景对甲醛监测的需求越来越多,拥有一台准确、性价比高、稳定的智能甲醛监测仪能给大家的健康生活带来一份便利,今天小编就来教大家如何基于STM32G0开发板+ESP8266 WiFi + TencentOS Tiny物联网操作系统,来自制一个智能甲醛监测仪。
Mculover666
2020/10/09
2.4K0
手把手教你自制基于TencentOS Tiny的智能甲醛监测仪
【物联网设备端开发】Arduino快速上手esp8266方案开发
ESP8266 是 Espressif Systems 生产的 Wi-Fi 片上系统 (SoC)。它非常适合物联网和家庭自动化项目,目前有非常高的市场普及率,还有更加高端的同时支持wifi和蓝牙的双核心芯片ESP32,可以在乐鑫官网查看完整的芯片列表。
帐篷Li-物联网布道师
2024/03/20
2.4K0
【物联网设备端开发】Arduino快速上手esp8266方案开发
C51 单片机开发认识串口
串行接口,亦被简称为串口或称为串行通信接口、串行通讯接口(常指代COM接口),是一种采用串行通信方式实现的扩展接口。这种接口的数据传输方式是按位顺序进行的,即数据一位一位地顺序传送。串行接口的特点在于其通信线路的简约性,仅需一对传输线即可实现双向通信(甚至可以直接利用电话线作为传输线),从而显著降低了成本。由于其这一特性,串行接口特别适用于长距离通信场景。然而,其传输速度相对较慢。
码农UP2U
2024/07/04
2540
C51 单片机开发认识串口
ESP32与STM32哪种更适合初学者?
无论是刚入坑的小白,还是想扩展技术栈的老鸟,在选择主力 MCU 时,学习曲线绝对是重要的考量因素。
不脱发的程序猿
2025/04/13
3370
ESP32与STM32哪种更适合初学者?
NodeMCU开发板引脚映射
如下图所示,ESP8266芯片四周分布很多引脚。这些引脚大部分可用作输入输出使用。这些用作输入输出的引脚统称为GPIO。
云深无际
2021/04/14
3.4K0
NodeMCU开发板引脚映射
【物联网设备端开发】Arduino快速上手esp32方案开发
ESP32是Espressif Systems推出的一款高性能、低功耗的Wi-Fi和蓝牙双模系统级芯片(SoC),广泛应用于物联网、智能家居、可穿戴设备等领域。它基于极低功耗的Tensilica Xtensa LX6微处理器,并集成了丰富的外设和传感器接口。以下是ESP32芯片的主要特性:
帐篷Li-物联网布道师
2024/03/20
8990
【物联网设备端开发】Arduino快速上手esp32方案开发
YYDS!大神自己动手制造游戏机
MicroByte 是一款微型主机,能够运行 NES、GameBoy、GameBoy Color、Game Gear 和 Sega Master 系统的游戏,所有元器件都设计在这 78 x 17 x 40 mm 的封装中。尽管成品尺寸很小,但它符合 SNES 游戏板的布局并且具有操作按钮。
程序员小猿
2022/03/16
1.5K0
YYDS!大神自己动手制造游戏机
硬件知识入门「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。 目录 一、芯片及开发板类 1. 单片机 2. 最小系统(板) 3. 开发板 4. 嵌入式系统 二、功能 1. GPIO 2. ADC&DAC 3. UART
全栈程序员站长
2022/09/15
7000
硬件知识入门「建议收藏」
物联网之微控制器四大平台概述与学习选择
描述: 本章以物联网以及工业控制入门学习的朋友为主,针对微控制器四大平台的一个概览,简单讲讲这些平台都有什么样的特点,能胜任什么样的任务,以及未来这些平台的发展趋势,最后谈谈学习这四大平台的切入点。
全栈工程师修炼指南
2022/09/29
1.1K0
使用30元开发板UNO D1 R32构筑物联网开发环境
用厂家的话来讲,ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、通用性和可靠性,适用于各种应用场景和不同功耗需求。以下是ESP32的主要参数:
面向对象思考
2020/03/25
1.9K0
使用30元开发板UNO D1 R32构筑物联网开发环境
推荐阅读
相关推荐
【单片机入门】(一)应用层软件开发的单片机学习之路-----基础知识入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档