ESP8266上的MicroPython入门(3)

这节简单的介绍一下:

MicroPython REPL位于UART0(GPIO1 = TX,GPIO3 = RX)上,波特率为115200。制表符补全有助于找出对象具有哪些方法。粘贴模式(Ctrl-E)可用于将大量Python代码粘贴到REPL中。

import machinemachine.freq() # 获取CPU频率machine.freq(160000000) # 设置160 MHz

import networkwlan=network.WLAN (network.STA_IF ) #创建站接口WLAN .active (True )      #激活接口wlan .scan ()             #扫描访问点wlan .isconnected ()      #检查工作站是否连接到AP wlan .connect ('essid' , 'password' ) #连接到AP wlan .config ('mac' )     #获取接口的MAC地址wlan .ifconfig ()         #获取接口的IP /网络掩码/ gw / DNS地址
ap  =  network.WLAN (网络。AP_IF ) #创建接入点界面AP.active (True )                   #激活接口ap.config(essid = 'ESP-AP')         #设置接入点的ESSID(就是热点名字)

ESP-yunswj就是热点


输入 help():

欢迎使用MicroPython!

有关在线文档,请访问

http:// docs.micropython.org/en/latest/esp8266/。

要使诊断信息包含在错误报告中,请执行“

import port_diag

”。

sta_if = network.WLAN(network.STA_IF)sta_if.active(True)sta_if.scan()                             # Scan for available access pointssta_if.connect("<AP_name>", "<password>")  # Connect to an APsta_if.isconnected()                      # Check for successful connection# 更改ESP8266 AP的名称/密码:ap_if = network.WLAN(network.AP_IF)ap_if.config(essid="<AP_NAME>", authmode=network.AUTH_WPA_WPA2_PSK, password="<password>")

控制命令:

 CTRL-A-在空白行上,进入原始REPL模式

        CTRL-B-在空白行上,进入常规REPL模式

        CTRL-C-中断正在运行的程序

        CTRL-D-在空白行上,对电路板进行软复位

        CTRL-E-在空白行上进入粘贴模式

有关特定对象的更多帮助,请键入

help(obj)

延时于时间:

import time
time.sleep(1)           # 休眠一秒time.sleep_ms(500)      # 休眠 500 millisecondstime.sleep_us(10) # sleep for 10 microsecondsstart = time.ticks_ms() ##获取毫秒计数器delta = time.ticks_diff(time.ticks_ms(), start) # 计算书简差

这些东西,是让你在写程序的时候写进去的,命令行输入的话,效果不是太大

from machine import Pin
p0 = Pin(0, Pin.OUT) # create output pin on GPIO0p0.on() # set pin to "on" (high) levelp0.off() # set pin to "off" (low) levelp0.value(1) # set pin to on/high
p2 = Pin(2, Pin.IN) # create input pin on GPIO2print(p2.value()) # get value, 0 or 1
p4 = Pin(4, Pin.IN, Pin.PULL_UP) # 使能内部上拉电阻p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation

可用的引脚为:0、1、2、3、4、5、12、13、14、15、16(11个),它们对应于ESP8266芯片的实际GPIO引脚编号。请注意,许多最终用户板使用自己的临时引脚编号(例如,标记为D0,D1等,自己来取名的)。由于MicroPython支持不同的板卡和模块,因此选择了物理引脚编号作为最低的公分母。有关板逻辑引脚和物理芯片引脚之间的映射,请看我昨天发的映射图.

请注意,引脚(1)和引脚(3)分别是REPL UART TX和RX。另请注意,Pin(16)是一个特殊的引脚(用于从深度睡眠模式唤醒).

PWM(脉冲宽度调制)

可以在引脚(16)以外的所有引脚上使能PWM。

所有通道都有一个频率,范围在1到1000之间(以Hz为单位)。

占空比在0到1023之间(包含端点值)。

machine.pwm

from machine import Pin, PWM
pwm0 = PWM(Pin(0)) # create PWM object from a pinpwm0.freq() # 现在频率pwm0.freq(1000) # 设置频率pwm0.duty() # 获取当前占空比pwm0.duty(200) # 设置占空比pwm0.deinit() # 关闭引脚上的PWM
pwm2 = PWM(Pin(2), freq=500, duty=512) # #一次性创建和配置,写法上的便利,不需要一次配置一个

ADC(模拟到数字转换)

ADC在专用引脚上可用。请注意,ADC引脚上的输入电压必须在0v至1.0v之间。

使用machine.ADC类:

from machine import ADC
adc = ADC(0) # create ADC object on ADC pinadc.read() # read value, 0-1024(10bit的精度)

软件SPI总线

有两个SPI驱动程序。一种是通过软件实现的(位敲打)并在所有引脚上工作,并且可以通过机器访问.SPI 类:

from machine import Pin, SPI# construct an SPI bus on the given pins# polarity is the idle state of SCK# phase=0 means sample on the first edge of SCK, phase=1 means the second# 构造给定的销SPI总线# 极性是SCK的空闲状态# 相位= 0表示样品在SCK的第一边缘,相位= 1个装置中的第二spi = SPI(-1, baudrate=100000, polarity=1, phase=0, sck=Pin(0), mosi=Pin(2), miso=Pin(4))
spi.init(baudrate=200000) #设置波特率
spi.read(10) # read 10 bytes on MISOspi.read(10, 0xff) # read 10 bytes while outputing 0xff on MOSI
buf = bytearray(50) # create a bufferspi.readinto(buf) #读入给定的缓冲区(在这种情况下,读取50个字节)spi.readinto(buf, 0xff) #读入给定的缓冲区,并在MOSI上输出0xff
spi.write(b'12345') # write 5 bytes on MOSI
buf = bytearray(4) # create a bufferspi.write_readinto(b'1234', buf) # write to MOSI and read from MISO into the bufferspi.write_readinto(buf, buf) # write buf to MOSI and read MISO back into buf

硬件SPI总线

硬件SPI速度更快(最高80Mhz),但仅适用于以下引脚: MISOGPIO12,MOSIGPIO13和SCKGPIO14。它具有与上面的bangbanging SPI类相同的方法,但构造函数和init的pin参数(固定的)是:

from machine import Pin, SPI
hspi = SPI(1, baudrate=80000000, polarity=0, phase=0)

SPI(0)用于FlashROM,对用户不可用,别用了。)

I2C总线

I2C驱动程序是通过软件实现的,并且可以在所有引脚上工作,并且可以通过machine.IC(class):

from machine import Pin, I2C
# construct(构造) an I2C busi2c = I2C(scl=Pin(5), sda=Pin(4), freq=100000)
i2c.readfrom(0x3a, 4)   #从地址为0x3a i2c的从设备读取4个字节i2c.writeto(0x3a, '12') #将'12'写入地址为0x3a的从设备buf = bytearray(10)     #创建一个具有10个字节i2c.writeto(0x3a, buf) #将给定的缓冲区写入从属设备
(0)

相关推荐

  • 船模制作——遥控模块 基于stm32和nrf24l01(固件库开发)

    目录 nrf24l01介绍 引脚图 引脚功能介绍 模式配置方法 官方宏 stm32配置 引脚映射 初始化函数 SPI模拟通信函数 nrf24l01配置函数 nrf24l01发射和接收 nrf24l01 ...

  • 在SensorTile上使用MicroPython(二)

    LPS22HB 的 Micropython 程序移植 前面介绍了传感器的接口.主要寄存器.参数计算等方面的内容,下面就介绍用MicroPython驱动LPS22HB的方法. 为了让程序具有通用性,以及 ...

  • WS51F0030 系列物联网 MCU的简介和特点

    WS51F0030 系列物联网 MCU的简介和特点

  • 在SensorTile上使用MicroPython

    前几天终于将SensorTile传感器部分的MicroPython驱动移植成功,因此就想将传感器的基本使用方法和大家讨论一下,顺便也写写MicroPython的移植方法.去年就有网友希望介绍移植方面的 ...

  • ESP8266上的MicroPython入门(1)

    上节简单得介绍了一下开发板,这节开始说一下为什么要用python开发,以及别的开发模式. 其实这里我并不知道要这么说,因为不谈应用场景得话,都是片面之词.所以我会搭配一些应用场景来说明. 1.AT指令 ...

  • ESP8266上的MicroPython入门(0)

    最近鸽了很久,其实有很多文章没有发出来.天天看各路大佬得万字长文,感觉自己学的太水,羞射....不好意思发.但是不写吧.又感觉对不起自己得99个粉丝(昨天取关了一个). Python and Micr ...

  • ESP8266上的MicroPython入门(4)

    写了几篇文章,但是么有什么条理,想表达得太多.不知道该怎么去说,比较苦恼.昨天又鸽了... 真鸽了!!!其实再此之前还有一篇刷写固件得,我下篇写吧.我考虑到Python得问题,还有写几篇语言基础吧.那 ...

  • 赵老师要开线上小篆书法入门班啦

    为了满足更多人学习小篆书法的兴趣, 本人计划近期开设网络书法班. 这也是一个逼迫自己学习的机会. 学什么呢? 要学就学书法和小篆[小篆和书法的关系]. 如果想知道我为什么要开网课. 可以继续往下看. ...

  • 斯蒂芬▪金的《写作这回事》:给写作小白上的一堂入门基础课

    <写作这回事>可能并不被我们熟知,但<肖申克的救赎>是我们耳熟能详的,这些书都出自斯蒂芬▪金(以下简称金),他十岁前后开始试笔,到2000年五十三岁时发表作品35部,被< ...

  • 掌握这些春正山小种茶基础知识,你在正山小种茶上才算入门

    烟正山小种采用正山小种为原料,用大块的松木烘焙之后.再经过第 二道松枝熏焙工艺的正山小种,称"烟正山小种"."烘焙"利用的是松木在燃烧过程产生的热量和少量的烟. ...

  • 给你一块刺绣,能认出多少针法?——纸上谈“绣”入门篇

    拖了半年的稿子--刺绣大概会写一个系列吧,先把基础的写了. 由于目前市面上最常见的刺绣风格是"苏绣",特征就是"平绣"用得很多,所以基本上看完这篇,市售手绣也就 ...

  • 干货 | 教你在CC3200-LAUNCHXL上运行MicroPython

    EEWORLD 行业资讯 犀利解读 技术干货 每日更新 经过几天的实验,终于在CC3200-LAUNCHXL开发板上成功运行了MicroPython,下面将具体方法分享给大家. 首先,需要做一些准备工 ...