0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP8266上的MicroPython入门-3

汽车电子技术 来源:云深之无迹 作者:小怼怼 2023-02-27 14:16 次阅读

这节简单的介绍一下:


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

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


import network
wlan=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(就是热点名字)

pYYBAGP8SkmAXPPYAAMrxi2vYyA500.png

pYYBAGP8SlWADHsYAACNmFgow8g534.png

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 points
sta_if.connect("", "")  # Connect to an AP
sta_if.isconnected()                      # Check for successful connection
# 更改ESP8266 AP的名称/密码:
ap_if = network.WLAN(network.AP_IF)
ap_if.config(essid="", authmode=network.AUTH_WPA_WPA2_PSK,
             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 milliseconds
time.sleep_us(10)       # sleep for 10 microseconds
start = time.ticks_ms() ##获取毫秒计数器
delta = time.ticks_diff(time.ticks_ms(), start) # 计算书简差


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

from machine import Pin

p0 = 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/high

p2 = Pin(2, Pin.IN)     # create input pin on GPIO2
print(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 pin
pwm0.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 pin
adc.read()              # read value, 0-1024(10bit的精度)

软件SPI总线

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

frommachineimportPin,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 MISO
spi.read(10, 0xff)      # read 10 bytes while outputing 0xff on MOSI

buf = bytearray(50)     # create a buffer
spi.readinto(buf)       #读入给定的缓冲区(在这种情况下,读取50个字节)
spi.readinto(buf, 0xff) #读入给定的缓冲区,并在MOSI上输出0xff

spi.write(b'12345')     # write 5 bytes on MOSI

buf = bytearray(4)      # create a buffer
spi.write_readinto(b'1234', buf) # write to MOSI and read from MISO into the buffer
spi.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 bus
i2c = 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)  #将给定的缓冲区写入从属设备
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ESP8266
    +关注

    关注

    50

    文章

    947

    浏览量

    43948
收藏 人收藏

    评论

    相关推荐

    ESP8266 MicroPython移植流程分享!

    微控制器及受限的环境优化以可以运行。下载固件:首先到MicroPython的官网下载基于ESP8266MicroPython固件。目前最新的稳定版本是「esp8266-2017110
    发表于 07-25 01:32

    ESP8266怎样对MicroPython进行开发呢

    如何在ESP8266上进行MicroPython开发?求解答
    发表于 01-14 06:31

    esp8266microPython如何调用Arduino库?

    esp8266microPython如何简单的调用Arduino库,本人C++不是太熟练,想把ATmega328p的一个LCD屏驱动移植到esp8266 microPython ,不
    发表于 10-30 07:42

    视频教程-micropython基础入门esp32/esp8266单片机开发)-物联网技术

    micropython基础入门esp32/esp8266单片机开发) 10...
    发表于 11-13 15:36 55次下载
    视频教程-<b class='flag-5'>micropython</b>基础<b class='flag-5'>入门</b>(<b class='flag-5'>esp</b>32/<b class='flag-5'>esp8266</b>单片机开发)-物联网技术

    MacOS上ESP8266开发板刷microPython教程

    MacOS上ESP8266开发板刷microPython教程
    发表于 11-30 17:36 8次下载
    MacOS上<b class='flag-5'>ESP8266</b>开发板刷<b class='flag-5'>microPython</b>教程

    arduino / VScode+platformIO搭建esp32/esp8266编译环境(一篇足矣)

    arduino/VScode+platformIO 搭建esp32/esp8266开发环境(一篇足矣)前言:入门开源硬件开发,在搭建编译环境的时候碰了一脸灰,特意写下此博客,以供参考!制作不易,来个
    发表于 12-05 14:06 31次下载
    arduino / VScode+platformIO搭建<b class='flag-5'>esp</b>32/<b class='flag-5'>esp8266</b>编译环境(一篇足矣)

    NodeMCU ESP8266开发入门

    NodeMCU ESP8266开发入门传送门
    发表于 12-07 17:06 26次下载
    NodeMCU <b class='flag-5'>ESP8266</b>开发<b class='flag-5'>入门</b>

    ESP8266入门博客---记录

    暂时也没弄清楚怎么玩,网上收录一些自己看的,算是一个心路历程。是什么玩意 :ESP8266使用入门教程_Q_xr-CSDN博客_esp8266教程开始测试一些AT指令:烂大街的ESP8266
    发表于 12-07 17:06 36次下载
    <b class='flag-5'>ESP8266</b><b class='flag-5'>入门</b>博客---记录

    ESP8266和Node MCU扫盲与开发入门

    ESP8266和Node MCU扫盲与开发入门
    发表于 12-15 13:50 20次下载

    ESP8266烧写micropython固件

    0 背景今天翻出了很久没有使用的ESP8266开发板,还记得是当时同学做IOT开发的时候推荐给我的,可以基于micropython进行开发,就顺便入手了几块。然后试了网上很多先用esptool擦除
    发表于 12-20 19:37 13次下载
    <b class='flag-5'>ESP8266</b>烧写<b class='flag-5'>micropython</b>固件

    如何在ESP32/ESP8266上使用MicroPython

    在本教程中,我们将了解 MicroPython,它与 Python 有何不同,以及如何在 ESP32/ESP8266 上开始使用 MicroPython。此外,我们将看到一个 LED
    发表于 08-19 15:09 1.2w次阅读
    如何在<b class='flag-5'>ESP</b>32/<b class='flag-5'>ESP8266</b>上使用<b class='flag-5'>MicroPython</b>

    ESP8266 DevKitC入门指南

    电子发烧友网站提供《ESP8266 DevKitC入门指南.pdf》资料免费下载
    发表于 09-23 10:14 3次下载
    <b class='flag-5'>ESP8266</b> DevKitC<b class='flag-5'>入门</b>指南

    ESP8266上的MicroPython入门-1

       对于一个MCU说到底都是在控制这些引脚在时间线上有"规律"得输出电平
    的头像 发表于 02-27 14:22 381次阅读
    <b class='flag-5'>ESP8266</b>上的<b class='flag-5'>MicroPython</b><b class='flag-5'>入门</b>-1

    ESP8266初次如何实现无线通信(基于电脑与ESP8266)

    的且集成的国产WIFI模块,它有很多种型号,但是使用方法没什么太大的区别,也可以说没区别,有些看起来引脚比较多的ESP8266模块只是将这个芯片的IO口拓展出来了而已。还有 一种原因就是它采用的是Micropython编程的ESP826
    发表于 05-30 09:53 14次下载
    <b class='flag-5'>ESP8266</b>初次如何实现无线通信(基于电脑与<b class='flag-5'>ESP8266</b>)

    使用ESP8266MicroPython支持MQTT的滚动文本

    电子发烧友网站提供《使用ESP8266MicroPython支持MQTT的滚动文本.zip》资料免费下载
    发表于 06-13 15:49 0次下载
    使用<b class='flag-5'>ESP8266</b>和<b class='flag-5'>MicroPython</b>支持MQTT的滚动文本