Micropython的优势
1、编译环境
C语言、汇编语言在编写程序之前,需要下载编译环境,然而Micropython不需要任何编译环境,只需将开发板U口插入电脑,便可在电脑上出现一个盘符,跟插入U盘一样,然后打开单片机,直接记事本编辑main.py就行,它的舒服在于MicroPython不需要任何工具和环境,任何文本工具+1块开发板即可开发编译
# 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的时候,等于内部电阻失效了,这个引脚就变成低电平了。