micro python第二次调用do_flash不成功




from machine import Pin, PWM
import socket
import time
import network
import machine
def do_connect():#定义一个链接WiFi的函数
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        print('connecting to network...')
        wlan.connect('123456', '123456789')
        i = 1
        while not wlan.isconnected():
            #判断是否已经成功连接
            print("正在连接...{}".format(i))
            i += 1
            #延时询问是否连接
            time.sleep(1)
    print('network config:', wlan.ifconfig())
def start_udp():
    # 2. 启动网络功能(UDP)
    # 2.1. 创建udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 2.2. 绑定一个固定的端口
    udp_socket.bind(("0.0.0.0", 7788))
    return udp_socket#返回套接字
def main():
    # 1. 链接wifi
    do_connect()
    # 2. 创建UDP
    udp_socket = start_udp()  
    # 3. 创建灯对象
    led = machine.Pin(2, machine.Pin.OUT)  
    # 4. 接收网络数据
    while True:
        recv_data, sender_info = udp_socket.recvfrom(1024)#接收字节   拆包
        print("{}发送{}".format(sender_info, recv_data))
        recv_data_str = recv_data.decode("utf-8")#解码
        ch=recv_data_str       
        if ch == "ON":#开灯
            led = machine.Pin(2, machine.Pin.OUT)
            led.value(1)
        if ch == "OFF":#关灯
            led.value(0)
        if ch == "ONN":
            do_flash()
def do_flash():   
    led = PWM(Pin(2))
    led.freq(1000)
    for a in range(0,1):
        for i in range(0, 1024):
            led.duty(i)
            time.sleep_ms(1)
        for i in range(1023, -1, -1):
            led.duty(i)
            time.sleep_ms(1)

if __name__ == "__main__":
    main()

#ESP32开发板 第二次接收ONN无反应

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇文章:Python Flash(1) 也许能够解决你的问题,你可以看下
  • 除此之外, 这篇博客: Python Flash(2)中的 示例1 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    输出结果

    代码

    # -*- coding: utf-8 -*-
    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    # 1. 如何返回一个网页(模板)
    # 2. 如何给模板填充数据
    @app.route('/')
    def index():
        # 计算:比如需要传入网址
        url_str = 'www.baidu.com'
        # 列表
        my_list = [1, 3, 5, 7, 9]
        # 字典
        my_dic = {
            'name': 'baidu',
            'url': 'www.baidu.com'
        }
        return render_template('index.html', url_str=url_str, my_list=my_list, my_dic=my_dic)  # 返回模板  模板中名字=上面的参数
    
    if __name__ == '__main__':
        app.run(debug=True)
    
    !DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>Title</title>
    </head>
    <body>
    这是模板 <br>
    这是首页 <br>
    
    {#下面是变量模板快的使用#}
    {{ url_str }} <br>
    {{my_list}} <br>
    {#列表的使用#}
    {{my_list[2]}} <br>
    
    {{my_dic}} <br>
    
    {#下面是控制代码块的使用#}
    <hr>
    {#for 循环#}
    
    {%	for num in my_list %}
    	{% if num > 3 %}
    		{{ num }} <br>
    	{% endif %}
    {% endfor %}
    
    {#字符串变大写#}
    {{ url_str | upper }} <br>
    {{ url_str | reverse }} <br>
    
    </body>
    </html>

     


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

先检查 ch 是否为 ONN