Micropython的优势

1、编译环境

C语言、汇编语言在编写程序之前,需要下载编译环境,然而Micropython不需要任何编译环境,只需将开发板U口插入电脑,便可在电脑上出现一个盘符,跟插入U盘一样,然后打开单片机,直接记事本编辑main.py就行,它的舒服在于MicroPython不需要任何工具和环境,任何文本工具+1块开发板即可开发编译




esp8266 python 小车 esp8266运行python_Powered by 金山文档


# main.py -- put your code here!
import pyb
 
while True:
pyb.LED(1).toggle()
pyb.delay(200)
pyb.LED(2).toggle()
pyb.delay(500)
# main.py -- put your code here!
import pyb
 
while True:
    pyb.LED(1).toggle()
    pyb.delay(200)
    pyb.LED(2).toggle()
    pyb.delay(500)

关于machine下面关于一些类的用法。

1、复位相关函数

machine.reset()此函数功能是复位系统,就像按下了复位键一样。注意当使用 USB_VCP作为REPL时,执行此函数会丢失USB连接

machine.raset_cause(

在这里不显示所谓的复位原因,我们可以从下面的复位原因中查看我们所得到的复位原因是什么,从而解决问题

)获取复位的原因

————————————————


重启原因的宏定义

数值

含义

PWRON_RESET

1

上电重启

HARD_RESET

2

硬重启

WDT_RESET

3

看门狗计时器重启

DEEPSLEEP_RESET

4

从休眠重启

SOFT_RESET

5

软重启


实现的功能是:D0接高电平(3V)led点亮;D0接低电平(GND)led熄灭

那么首先需要配置引脚id为16——这里注意,开发板引脚号和GPIO引脚并不是对应的,程序只认识GPIO的引脚号,我知道GPIO对应的实体引脚是D0就可以了。

mode模式为输入,pull输入方式为None无上下拉。代码如下:

from machine import Pin
led=Pin(2,Pin.OUT)      #初始化LED引脚
 
button=Pin(16,Pin.IN,None)   #初始化按键引脚
 
while 1:                #一直循环下面的程序
  if button.value()==1: #如果按键为高电平
      led.value(0)      #打开led
  else: led.value(1)    #关闭led

点击uPyCraft运行按钮,用导线连接D0和3V,led点亮,用导线连接D0和G,led熄灭。

我再试一下不同pull带来的不同效果

from machine import Pin
led=Pin(2,Pin.OUT)      #初始化LED引脚
 
button = Pin(16, Pin.IN,Pin.PULL_UP)   #初始化按键引脚
 
while 1:                #一直循环下面的程序
  if button.value()==1: #如果按键为高电平
      led.value(0)      #打开led
  else: led.value(1)    #关闭led

错误的意思是这个引脚不能设置pull。之所以会这样是因为这个引脚有其他功能,看引脚图,GPIO16还有USER和WAKE。那么换一个引脚,改成GPIO 05

button = Pin(5, Pin.IN,Pin.PULL_UP)   #初始化按键引脚

这样运行就没有报错了。运行后看到led已经亮了,这里我的D1引脚并没有连线。然后把D1连接到G,led熄灭,断开连接,led点亮。这里我就能理解PULL_UP上拉的意思了,就是芯片里面有一个电阻帮我把设置的引脚连接到高电平,在没有外部影响的情况下,这个引脚因为内部电阻置高电平。当这个引脚外部链接到GND的时候,等于内部电阻失效了,这个引脚就变成低电平了。