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。


目录
相关文章
|
1月前
|
Linux 开发者
微处理器移植Linxu的GPIO操作
微处理器移植Linxu的GPIO操作
11 0
|
存储 监控 C语言
西门子S7-1200编程实例,关断延迟定时器指令如何使用?
在西门子S7-1200中有四种类型的定时器:TON接通延迟定时器、TONR保持型接通延迟定时器、TOF关断延迟定时器、TP脉冲定时器。
西门子S7-1200编程实例,关断延迟定时器指令如何使用?
|
2天前
全志平台A40I GPIO操作:adb通过debugfs控制GPIO
全志平台A40I GPIO操作:adb通过debugfs控制GPIO
13 0
|
1月前
|
存储
RTOS多线程操作的基本原理与实现
RTOS多线程操作的基本原理与实现
46 0
|
4月前
|
存储 安全 数据安全/隐私保护
3.2 Windows驱动开发:内核CR3切换读写内存
CR3是一种控制寄存器,它是CPU中的一个专用寄存器,用于存储当前进程的页目录表的物理地址。在x86体系结构中,虚拟地址的翻译过程需要借助页表来完成。页表是由页目录表和页表组成的,页目录表存储了页表的物理地址,而页表存储了实际的物理页框地址。因此,页目录表的物理地址是虚拟地址翻译的关键之一。在操作系统中,每个进程都有自己的地址空间,地址空间中包含了进程的代码、数据和堆栈等信息。为了实现进程间的隔离和保护,操作系统会为每个进程分配独立的地址空间。在这个过程中,操作系统会将每个进程的页目录表的物理地址存储在它自己的CR3寄存器中。当进程切换时,操作系统会修改CR3寄存器的值,从而让CPU使用新的页
50 0
3.2 Windows驱动开发:内核CR3切换读写内存
|
6月前
|
前端开发 芯片
【芯片前端】保持代码手感——同步FIFO
【芯片前端】保持代码手感——同步FIFO
|
Android开发 异构计算
nios ii FIFO读取FPGA数据交互实验1
nios ii FIFO读取FPGA数据交互实验1
206 0
nios ii FIFO读取FPGA数据交互实验1
|
11月前
|
芯片
具体单板的按键驱动程序(查询方式)-以IMX6ull单板为例子
具体单板的按键驱动程序(查询方式)-以IMX6ull单板为例子
74 0
|
Linux 开发者 Perl
zynq操作系统:Linux驱动开发AXIDMA补充篇 多路DMA
Linux驱动开发AXIDMA补充篇 多路DMA
897 0
|
Linux 芯片
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十四)具体单板的GPIO操作方法
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十四)具体单板的GPIO操作方法
113 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发(二十四)具体单板的GPIO操作方法

热门文章

最新文章