PYB操作-点灯开箱、GPIO操作(一)

简介: PYB操作-点灯开箱、GPIO操作

学习内容


pyb的一些简单操作。熟悉micropython在pyb上面的应用

开发环境


putty、PYB nano

MocroPython的启动模式


在启动后,MicroPython会先运行 boot.py 文件,加载用户驱动,然后在运行main.py,执行用户程序。可以将用户程序放在main.py中,也可以在main.py中再加载其它的文件。

常见故障


在使用过程中,我们需要注意下面问题,避免造成文件系统破坏、数据丢失。

取下数据线前,需要先U盘那样安全删除硬件,弹出PYBFLASH磁盘,否则可能会造成文件系统破坏,特别在修改了文件或复制新文件到PYBFLASH磁盘后。

不要轻易按复位键,这样会造成当前的USB通讯中断。一般的问题,可以通过按下Ctrl-D软复位接近。

出厂模式


使用时间长了,因为各种原因可能会出现故障,造成无法正常启动,不能进入REPL,文件系统破坏等现象,这时就需要通过出厂模式进行恢复。

进入出厂模式的方法是:

按下复位键(RESET)的同时,按住用户按键SW。

然后保持用户按键不放,释放复位键。

这时LED将循环显示:绿-》黄-》绿+黄-》灭

等黄绿灯同时亮时,松开用户键,这时黄绿灯会同时快速闪4次

然后红灯亮起(这时红绿黄三个灯同时亮)

红灯灭,开始进行恢复到出厂状态

所有灯都灭,恢复出厂设置完成。

恢复出厂设置后,PYBFLASH中的内容会丢失,变为默认文件。

升级固件


MicroPython的更新速度很快,每次更新都会带来一些新的功能,修正错误。所以掌握 MicroPython 的固件升级方法是有必要的。

PYB Nano支持下面几种升级方法:

通过DFU模式升级 通过SWD方式升级

使用DFU模式,需要安装ST的DfuSe_demo软件(Windows)或者dfu-util(Linux)。使用SWD需要将开发板的SWD接口(PA13/PA14)连接到编程器,通过编程软件下载。

REPL 的用法


通常调试程序时,都是在 MicroPython 的 REPL (read–eval–print loop,循环交互解释器)环境下运行。在REPL下可以直接输入命令,有内置的解释器执行。如果命令输入正常,就会显示运行结果,否则会给出错误提示。

MicroPython支持几个常用的快捷键,如果你熟悉串口终端,会发现它们的习惯是一样的。


  • Ctrl-C,停止正在的程序或终止当前的命令行
  • Ctrl-D,软复位(soft reset)
  • Ctrl-B,显示系统提示
  • Ctrl-E,进入粘贴模式。可以按下Ctrl-C退出粘贴模式,Ctrl-D完成粘贴
  • Tab,键盘上的Tab键,可以补全命令
  • 除了Ctrl-C,其它快捷键需要在空命令行下(没有输入任何字符)才能生效。此外,还可以使用上下左右光标键
  • 上下键,调出以前输入的命令。MicroPython可以保存最后输入的6条命令
  • 左右键,在当前命令行中移动,编辑命令

配置终端


MicroPython和PC的标准连接是通过USB接口,使用虚拟磁盘和虚拟串口(VCP)方式。其中虚拟串口(在pyboard和STM32上可以同时使用USB虚拟串口和物理串口两种方式)是调试中最常用的方式,无须频繁复制文件避免造成Flash的损耗。在MicroPython上我们使用串口终端软件和MicroPython的REPL进行交互,发送命令。通过串口终端软件,我们可以方便地在 REPL 中输入代码,运行和调试程序,打印结果。开发MicroPython程序时,掌握终

端软件的使用是非常有必要的,注意不要使用Windows下的串口调试助手、串口精灵这样的软件,因为它们只适合一般的串口调试,发送数据,但是不方便输入命令,不支持粘贴功能,不能和REPL进行交互操作。

这里我用的是putty

配置过程接很简单,首先打开设备管理器:

image.png

这里可以看到对应PYB板子的串口,我们只需要在PUTTY打开这个串口终端即可。

这里我的串口是COM20 波特率是115200,记得选择serial。当然为了方便大家可以把这个COM存起来。

image.png

大功告成!现在只需要打开对应的端口即可使用,效果如图:

image.png

当然我们也可以在我的电脑板子上的文件:

image.png

下面就简单操作下板载的函数熟悉下操作吧~

PYB库函数操作


1.点灯工程师~(点亮,关闭,翻转,闪烁)


首先要说明的是可以在终端进行代码操作,也可以将代码输入main.py中,在终端中输入的将不会保存,而在main.py中输入后,保存后按下Ctrl+D后,实现软件复位。将会看到编写的代码实现的操作。

import pyb
# 点亮操作
pyb.LED(1).on() #点亮 LED1
pyb.LED(2).on() #点亮 LED2
pyb.LED(3).on() #点亮 LED3
pyb.LED(4).on() #点亮 LED4
# 关闭操作
pyb.LED(1).off() #关闭 LED1
pyb.LED(2).off() #关闭 LED2
# 翻转操作
pyb.LED(1).toggle() #翻转 LED1
#闪烁操作
while True:
  pyb.LED(1).toggle() #翻转 LED1
  pyb.delay(200) #延时200ms

除了打开、关闭、翻转功能外,部分 LED 还可以控制亮度。在PYB上,LED3和LED4支持亮度调整功能,如可以这样控制LED3的亮度:

import pyb
pyb.LED(3).intensity(10)

亮度的范围为0~255,0最暗(关闭),255最亮。对于那些不支持亮度功能的LED,在设置亮度时,0是关,大于0就是开。

LED.intensity([value])

读取或者设置LED亮度。亮度的范围是0(熄灭)到255(最亮)。

注意:只有LED(3)和LED(4)支持亮度调节功能,它们使用定时器的PWM方式来控制LED的亮度。LED(3)使用定时器2,LED(4)使用定时器3(如果改变了定时器2/3的参数,亮度调整功能会受到影响)。只有在使用了LED.intensity()功能,并且参数在1~254之间时定时器才会自动配置为PWM模式。

1.1跑马灯


import pyb
leds =[pyb.LED(i) for i in range(1,5)] #定义led
n=0
while True:
  n = (n+1)%4
  leds[n].on()
  pyb.delay(200)
  leds[n].off()

1.2.往返式跑马灯


import pyb
n=1
dn=1
while True:
  pyb.LED(n).toggle()
  pyb.delay(200)
  pyb.LED(n).toggle()
  n=n+dn
  if (n>3)or(n<2):
    dn=-dn;#改变方向

2.按键的操作


2.1 读取按键键值


import pyb
sw = pyb.Switch() #定义按键对象
print(sw()) #读取按键状态

如果按下了按键,就返回True,否则返回False。我们还可以定义一个按键的回调函数(类似C语言里的中断函数),当按下按键时将自动执行这个回调函数。下面定义的回调函数中,每当按下一次按键,就将翻转一次LED1。


目录
相关文章
|
8月前
全志平台A40I GPIO操作:adb通过debugfs控制GPIO
全志平台A40I GPIO操作:adb通过debugfs控制GPIO
238 0
|
8月前
|
Linux 开发者
微处理器移植Linxu的GPIO操作
微处理器移植Linxu的GPIO操作
43 0
|
3月前
|
芯片
【寄存器开发速成】半小时入门STM32寄存器开发(一)
【寄存器开发速成】半小时入门STM32寄存器开发(一)
|
3月前
【寄存器开发速成】半小时入门STM32寄存器开发(二)
【寄存器开发速成】半小时入门STM32寄存器开发(二)
|
6月前
stm32f407探索者开发板(十四)——IO引脚复用和映射
stm32f407探索者开发板(十四)——IO引脚复用和映射
623 0
|
6月前
stm32f407探索者开发板(二十三)——定时器中断实验
stm32f407探索者开发板(二十三)——定时器中断实验
648 0
|
8月前
LabVIEW编程NI 6602计数器DMA冲突例程与相关资料
LabVIEW编程NI 6602计数器DMA冲突例程与相关资料
77 7
|
8月前
|
Shell
全志平台A40I 读写寄存器操作
全志平台A40I 读写寄存器操作
162 0
|
8月前
MSR04X1 串行通信模块程序调入方案
MSR04X1 串行通信模块程序调入方案
|
Android开发 异构计算
nios ii FIFO读取FPGA数据交互实验1
nios ii FIFO读取FPGA数据交互实验1
273 0
nios ii FIFO读取FPGA数据交互实验1