请教python指令的注释
网上找了一段python代码,功能就是键按下后 led亮,键松开后led灭。
无奈刚刚初学python,
看不懂没有注释的代码。
请大家帮忙给注释哈。
谢谢了!
代码如下:
#此代码在RP2040-zero模块上运行成功2024-12-28-lxa0
import machine
led=machine.Pin(6, machine.Pin.OUT) # LED连接到GPIO-6
k2=machine.Pin(26, machine.Pin.IN, machine.Pin.PULL_UP)# 按键连接到GPIO-26
while True:
if k2.value()== 0: # 如果按键被按下(检测到L电平)
led.value(1) # LED亮
else:
led.value(0) # LED灭
def debounce(pin):
state, cntr = 0, 0
while cntr < 5:
if pin.value() != state:
cntr += 1
else:
cntr = 0
state = pin.value()
time.sleep_ms(10)
return state
lxa000 发表于 2024-12-31 16:07
昨天忙乎半夜,终于山寨了 第一个自己的python代码。
#此代码在RP2040-zero模块上运行成功2024-12-30-lxa0 ...
恭喜楼主迈入嵌入式开发的大门.:lol lxa000 发表于 2024-12-31 16:07
昨天忙乎半夜,终于山寨了 第一个自己的python代码。
#此代码在RP2040-zero模块上运行成功2024-12-30-lxa0 ...
消除抖动一般是对付短按的,如果你长按,就自动消抖了。
没有也行,证明你的按钮质量好,也证明环境好,没干扰。
另外LED的反应那么的快,11毫秒一亮一暗也看不出来,加上python的执行效率,更没什么反应了。 lxa000 发表于 2024-12-29 15:24
多谢上面 2位朋友的解答。
最好找一本python入门的书,先对编程有个大概的了解,Micropython也是python,语法是完全一样. 楼主在首帖说初学 Python,俺猜测这个描述并不准确,应该是初学编程 ...... lxa000 发表于 2024-12-29 15:24
多谢上面 2位朋友的解答。
下面那段代码本意是按键去抖动,但是写这段代码的人脑子不清楚,漏洞百出没有任何参考价值,不要再琢磨它了 ...... 语法并不难,
难的是几个变量名分别代表什么东西或者参数(可能跟硬件相关),不懂就无法理解这代码 带了DEF这就是个函数,没有调用不会执行的.
led=machine.Pin(6, machine.Pin.OUT) # LED连接到GPIO-6
k2=machine.Pin(26, machine.Pin.IN, machine.Pin.PULL_UP)# 按键连接到GPIO-26
while True:
if k2.value()== 0: # 如果按键被按下(检测到L电平)
led.value(1) # LED亮
else:
led.value(0) # LED灭
这部分是标准的代码部分,直接就执行了 俺对 MicroPython 不熟悉,粗略看后面一段代码是按键去抖动的,但是并没有被调用。 本帖最后由 lxa000 于 2024-12-29 15:29 编辑
多谢上面 2位朋友的解答。
下面的部分请给注释一下:
def debounce(pin):
。。。。。 ustone 发表于 2024-12-29 16:46
语法并不难,
难的是几个变量名分别代表什么东西或者参数(可能跟硬件相关),不懂就无法理解这代码
我正在用的是ESP32里的 rp2040-zero模块。
多谢上面朋友解答。
已买了书还在里上 。
不知这书行不行?
昨天忙乎半夜,终于山寨了 第一个自己的python代码。
#此代码在RP2040-zero模块上运行成功2024-12-30-lxa0
#此代码不加 time.sleep_ms(11)消抖动也能正常运行。为啥???
import machine
import time
led=machine.Pin(8, machine.Pin.OUT) # LED连接到GPIO-8脚
k2=machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_UP)# 按键连接到GPIO-14脚
while True:
if k2.value()==0: # 如果按键被按下(检测到L电平),也可以k2.value()!=1:
time.sleep_ms(11) # 延时11mS消抖动
if k2.value()==0: # 再次确认键按下
led.value(1) # 则LED亮
else:
time.sleep_ms(11)
led.value(0) # LED灭
else:
time.sleep_ms(11)
led.value(0) # LED灭
bigluo 发表于 2024-12-31 17:23
消除抖动一般是对付短按的,如果你长按,就自动消抖了。
没有也行,证明你的按钮质量好,也证明环境好, ...
为了保险,
消抖语句还是先留着,
以后用的上 。 这是ai对这段代码的解释这段 Python 代码似乎是在使用 machine 模块来控制一个 LED 和一个按键。 代码中首先定义了一个 LED 连接到 GPIO-6 并设置为输出模式,一个按键连接到 GPIO-26 并设置为输入模式且上拉。 在 while True 循环中,根据按键的状态来控制 LED 的亮灭。 debounce 函数用于消除按键的抖动,通过一定的延时和状态判断来实现。 请问您是对这段代码的功能、实现方式有疑问,还是希望对它进行修改或优化呢?
页:
[1]
2