矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 1531|回复: 17

请教python指令的注释

[复制链接]
     
发表于 2024-12-28 17:44:23 | 显示全部楼层 |阅读模式
网上找了一段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
     
发表于 2025-1-1 01:37:57 | 显示全部楼层
lxa000 发表于 2024-12-31 16:07
昨天忙乎半夜,终于山寨了 第一个自己的python代码。
#此代码在RP2040-zero模块上运行成功2024-12-30-lxa0 ...

恭喜楼主迈入嵌入式开发的大门.

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2024-12-31 17:23:31 | 显示全部楼层
lxa000 发表于 2024-12-31 16:07
昨天忙乎半夜,终于山寨了 第一个自己的python代码。
#此代码在RP2040-zero模块上运行成功2024-12-30-lxa0 ...

消除抖动一般是对付短按的,如果你长按,就自动消抖了。
没有也行,证明你的按钮质量好,也证明环境好,没干扰。
另外LED的反应那么的快,11毫秒一亮一暗也看不出来,加上python的执行效率,更没什么反应了。

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2024-12-30 00:12:27 | 显示全部楼层
lxa000 发表于 2024-12-29 15:24
多谢上面 2位朋友的解答。

最好找一本python入门的书,先对编程有个大概的了解,Micropython也是python,语法是完全一样.

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2024-12-29 18:46:05 | 显示全部楼层
楼主在首帖说初学 Python,俺猜测这个描述并不准确,应该是初学编程 ......

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2024-12-29 18:42:33 | 显示全部楼层
lxa000 发表于 2024-12-29 15:24
多谢上面 2位朋友的解答。

下面那段代码本意是按键去抖动,但是写这段代码的人脑子不清楚,漏洞百出没有任何参考价值,不要再琢磨它了 ......

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2024-12-29 16:46:03 | 显示全部楼层
语法并不难,
难的是几个变量名分别代表什么东西或者参数(可能跟硬件相关),不懂就无法理解这代码

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2024-12-29 00:42:56 | 显示全部楼层
带了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灭
这部分是标准的代码部分,直接就执行了

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
发表于 2024-12-28 18:20:53 | 显示全部楼层
俺对 MicroPython 不熟悉,粗略看后面一段代码是按键去抖动的,但是并没有被调用。

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

     
 楼主| 发表于 2024-12-29 15:24:15 | 显示全部楼层
本帖最后由 lxa000 于 2024-12-29 15:29 编辑

多谢上面 2位朋友的解答。


下面的部分请给注释一下:
def debounce(pin):
。。。。。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-12-29 18:07:02 | 显示全部楼层
ustone 发表于 2024-12-29 16:46
语法并不难,
难的是几个变量名分别代表什么东西或者参数(可能跟硬件相关),不懂就无法理解这代码

我正在用的是ESP32里的 rp2040-zero模块。

RP2040-Zero模块引脚图.jpg rp2040-zero正反面.jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-12-30 14:47:17 | 显示全部楼层
多谢上面朋友解答。
已买了书还在里上 。
不知这书行不行?

python3版书.jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-12-31 16:07:03 | 显示全部楼层
昨天忙乎半夜,终于山寨了 第一个自己的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灭
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2025-1-1 00:27:03 | 显示全部楼层
bigluo 发表于 2024-12-31 17:23
消除抖动一般是对付短按的,如果你长按,就自动消抖了。
没有也行,证明你的按钮质量好,也证明环境好, ...

为了保险,
消抖语句还是先留着,
以后用的上 。
回复 支持 反对

使用道具 举报

     
发表于 2025-1-3 21:26:47 来自手机 | 显示全部楼层
这是ai对这段代码的解释这段 Python 代码似乎是在使用 machine 模块来控制一个 LED 和一个按键。   代码中首先定义了一个 LED 连接到 GPIO-6 并设置为输出模式,一个按键连接到 GPIO-26 并设置为输入模式且上拉。   在 while True 循环中,根据按键的状态来控制 LED 的亮灭。   debounce 函数用于消除按键的抖动,通过一定的延时和状态判断来实现。   请问您是对这段代码的功能、实现方式有疑问,还是希望对它进行修改或优化呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2025-4-26 02:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表