深圳网站制作开发,免费精准客户软件,相册制作软件app,网上网城网站在之前的章节中#xff0c;小编带领大家学习了#xff1a;如何构建esp32的python开发环境-CSDN博客 今天小编带领大家开始学习python编程的第一节#xff0c;通用引脚。esp32c3核心板是一个高度集成#xff0c;功能丰富的模块#xff0c;来看下他的功能分布#xff1a; 我… 在之前的章节中小编带领大家学习了如何构建esp32的python开发环境-CSDN博客 今天小编带领大家开始学习python编程的第一节通用引脚。esp32c3核心板是一个高度集成功能丰富的模块来看下他的功能分布 我们可以看到esp32c3为我们提供很多外设串口uart、i2c、spi、adc和pwm等这些外设在后续的课程中都会为大家一一讲解。
一、熟悉引脚概念和应用
1.1、通用管脚概念 今天就来学习下通用引脚的概念和用作。引脚是单片机这种主控芯片特有的名字可以理解它和我们人类的手脚相似不管做什么事情都是需要依靠它下图针脚形状的都是引脚。 单片机的引脚会有很多人类只有一副手脚那是因为我们的手脚可以做很多复杂的动作攥拳、握手、活动手指等。因为单片机的引脚功能相对人类能做的能做到的动作很有限所以需要更多的引脚来完成复杂和大工作量的任务。
1.2、管脚功能和模式 通用引脚主要分为数字、模拟两种功能又分为输出和输入两种模式 ①状态1一般等于系统电压指的是当前的主控芯片采用的电压esp32系列是3.3V的供电电压所以系统电压就是3.3V。 ②状态0一般等于GND也就是接地电压为0V。 ③模拟电压是一个范围的值输出的电压范围一般是 0 到 系统电压输入同理。 这里面可能很多小朋友对数字和模拟理解可能比较晦涩这是需要大篇幅来讲解会在后续的分享中给大家一一讲解今天主要掌握数字引脚的输出电压状态就可以啦。 上述的uart、i2c、spi、adc和pwm等功能都是通过管脚的输出和输入模式来实现的。
1.3、TTL逻辑电平 这里给大家补充一个概念ttl电平上述说状态1一般是系统电压状态0一般是GND其实这是不准确这个是根据控制芯片的供电电压决定的。 比如VCC系统电压5.0V输入的状态1Vih电压指的是 大于2.0V就都可以认为是状态1同理输入状态0Vil电压指的是小于0.8V就都是状态0输出状态1Voh电压指的是 大于2.4V就可以同理输出状态0Vol电压指的是 小于0.4V就可以。 单片机的输出电压状态1和0是直接被拉满的以3.3V供电电压esp32为例状态1输出的就是3.3V状态0输出的就是0V.
二、项目实战
2.1、官方学习文档 通过python控制单片机采用的核心技术是micropython技术大家可以关注官网了解更多的概念和例子MicroPython - Python for microcontrollers中文网micropython中文网 打开中文官网选择esp32部分来看下官方提供了哪些例子 2.2、引脚和GPIO例子
from machine import Pinp0 Pin(0, Pin.OUT) # create output pin on GPIO0
p0.on() # set pin to on (high) level
p0.off() # set pin to off (low) level
p0.value(1) # set pin to on/highp2 Pin(2, Pin.IN) # create input pin on GPIO2
print(p2.value()) # get value, 0 or 1micropython最大的优势就是提供很多系统库方便我们使用 首先导入引脚库 from machine import Pin 设置引脚输出模式p0 Pin(0, Pin.OUT) 控制引脚的状态p0.on()等价与p0.value(1)p0.off()等价与p0.value(0) 设置引脚输入模式p2 Pin(2, Pin.IN) 读取输入的值print(p2.value())
2.3、点亮led 通过对引脚的学习那我们就来实战一下点亮一个led
from machine import Pinled1 Pin(12, Pin.OUT)
led2 Pin(13, Pin.OUT)
led1.on()
led2.value(1) 我们的板子上自带两个led分别和引脚12、13进行连接控制两个引脚就可以点亮led了。 打开开发环境thonny复制代码下载程序看下实际运行效果 运行效果 三、python语法小课堂
3.1、变量定义 顾名思义变量Variable是可以改变的量与之相对的是不可改变的常量。变量可以理解为数据的容器。 变量名是由用户自己定义的标识符。其命名规则如下 ①由字母、下划线、数字、汉字、日文、韩文、俄文等语言文字组成。不能包含下划线以外的英文标点符号因为这些符号被用作为运算符。另外经过测试中文标点符号也不允许。 ②第一个字符不能是数字。因为数值使用数字开头十六进制还使用a-f之间的字母数字开头的标识符也表示变量会让编译器难以处理。 ③区分大小写、长度不限和不得与关键字同名
合法变量名 _ab、abc、ABC、ab123等
不合法变量名1abc、abc、class等
3.2、库的导入 库的作用就是把写好的代码封装好成库后面在使用的时候就可以通过导入库来进行调用使用了不用重复写代码了。python提供倒入库的语法是通过import语句 Python 模块(Module)是一个 Python 文件以 .py 结尾包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段。
①import 语句
模块定义好后我们可以使用 import 语句来引入模块语法如下
import module1[, module2[,... moduleN]] 比如要引用模块 math就可以在文件最开始的地方用 import math 来引入。在调用 math 模块中的函数时必须这样引用
模块名.函数名 一个模块只会被导入一次不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。
②from…import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下
from modname import name1[, name2[, ... nameN]]
例如要导入模块 fib 的 fibonacci 函数使用如下语句
from fib import fibonacci 这个声明不会把整个 fib 模块导入到当前的命名空间中它只会将 fib 里的 fibonacci 单个引入到执行这个声明的模块的全局符号表。
③from…import* 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的只需使用如下声明
from modname import *
这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。
例如我们想一次性引入 math 模块中所有的东西语句如下
from math import *
3.3、方法函数的调用 定义一个函数只给了函数一个名称指定了函数里包含的参数和代码块结构。这个函数的基本结构完成以后你可以通过另一个函数调用执行也可以直接从Python提示符执行。如下实例调用了printme函数
#!/usr/bin/python
# -*- coding: UTF-8 -*-# 定义函数
def printme( str ):打印任何传入的字符串print strreturn# 调用函数
printme(我要调用用户自定义函数!)
printme(再次调用同一函数) 更多的python的语法可以参考这个学习简单明了Python 函数 | 菜鸟教程 (runoob.com)
小编后续课程会以应用为主编程语言的实战应用。更多语言的语法问题可以参考其他文章学习。