zoukankan      html  css  js  c++  java
  • Micropython入门实操心得

    1. 用串口线连接pyboard和电脑,发现开发板被识别为移动磁盘。

    2 .移动磁盘中默认会有4个文件,它们分别是:

    boot.py:开机最先运行的文件,最后会由它加载main.py。
    main.py:开机会被boot.py文件引导,可以将自己的代码放在里面。
    pybcdc.inf:windows下的虚拟串口驱动文件。
    readme.txt:简要说明。
    

    实操经验:boot.py文件里面可以声明包含自己要用到的模块,里面可以定制自己开机程序(也就是在运行main.py文件前的程序),但是该文件里面的程序越小越好,官方注释就是怎么说的。

    时间推移,我们会把自己写的程序模块化,然后放在这个磁盘里供给使用。在模块化程序里面必须要声明也就是包含自己要用到的模块或者模块里面的函数或者类。

    一般稳操作是:直接把这个模块包含进来,就不容易出问题,但是文件就大了。

    熟悉一点的时候,可以尝试只包含自己需要的函数和类。(这个部分容易出现问题)

    注:在应用程序上如果有循环语句存在时,交互式终端会打不开。

    下面是我定义的一个基本操作函数模块,比如点灯,按键操作,后面会陆陆续续添加更多(此处的是我们常规的操作方式,也就是面象过程编程)。

    boot.py

    # boot.py -- run on boot-up
    # can run arbitrary Python, but best to keep it minimal
    
    import machine
    import pyb
    import pybase
    #pyb.main('main.py') # main script to run after this one
    #pyb.usb_mode('VCP+MSC') # act as a serial and a storage device
    #pyb.usb_mode('VCP+HID') # act as a serial device and a mouse

    #pyb.main('main.py') # main script to run after this one

    这个注释掉的语句的作用是程序的主程序运行位置,里面的'main.py你可以改成其它文件,在boot里面的程序初始化和声明或者运行完成后,再去执行刚刚声明主程序要执行的文件位置(实际操作和推断出来的,读者可以自己测试或者参考其它资料),默认情况下主程序会运行main.py文件。
    #pyb.usb_mode('VCP+MSC') # act as a serial and a storage device

    #pyb.usb_模式(“vcp+msc”)用作串行和存储设备
    #pyb.usb_mode('VCP+HID') # act as a serial device and a mouse

    #pyb.usb_模式(“vcp+hid”)用作串行设备和鼠标

    pybase.py

    from pyb import LED,Switch  #导入pyb模块中的类
    from pyb import delay       #导入pyb模块中的函数
    def led(n,status='off',intensity=None,toggle=None):
        '''
            n:第n个led灯,n的范围为[1,4].
            status:led灯的两种状态,打开灯与关闭灯(分别对应着:'on','off')
            intensity:led灯的亮度值调节参数,调节范围为0~255.
            toggle:led灯的引脚电平反转.
        '''
        #建立LED灯的实例
        led = LED(n)
        if toggle == None:
            if status == 'on' or intensity != None:
                if intensity != None:
                    led.intensity(intensity)
                else:
                    led.on()
            else:
                led.off()
        else:
            led.toggle()
    #led灯初始化
    def led_init():
        '''
            将初始化led灯的引脚,全部设置为关闭状态,亮度值默认255
        '''
        for i in range(1,5):
            led(i,intensity=255)
            led(i)
    #按键函数
    def keys(n):
        '''
            稳定的按键程序
        '''
        key = Switch()  #开关类实例化
        if key.value():
            delay(10)   #消抖
            if key.value():
                led(n,toggle='toggle')
            while key.value():  #松手检测
                pass

     main.py

    while True:
        pybase.keys(4)

     按照官方推荐boot文件里面的内容越迷你越好,来尝试缩小一下:(相对于上面的几个文件的程序,只需改两个文件就好了)

    第一个要改的文件boot.py

    # boot.py -- run on boot-up
    # can run arbitrary Python, but best to keep it minimal
    
    import machine
    import pyb
    from pybase import keys
    #pyb.main('main.py') # main script to run after this one
    #pyb.usb_mode('VCP+MSC') # act as a serial and a storage device
    #pyb.usb_mode('VCP+HID') # act as a serial device and a mouse

    第二个更改的文件main.py

    while True:
           keys(4)

    如果你要复制上面的程序测试一下,可以用编译器把可能因输入的程序里面包含空格和Tab混合使用的方式统一一下(统一成空格或者tab,编译器里面有这个功能),不然会报这个方面的错。

  • 相关阅读:
    设计模式のIteratorPattern(迭代器模式)----行为模式
    设计模式のChainOfResponsibilityPattern(责任链模式)----行为模式
    设计模式のProxyPattern(代理模式)----结构模式
    设计模式のFlyweight(享元模式)----结构模式
    设计模式のFacadePattern(外观模式)----结构模式
    js代码判断浏览器种类IE、FF、Opera、Safari、chrome及版本
    实现图片预加载
    移动端 下滑时加载新数据
    各种高度
    js验证input输入正整数 和 输入的金额小数点后保留两位(PC端键盘输入)
  • 原文地址:https://www.cnblogs.com/iBoundary/p/11253924.html
Copyright © 2011-2022 走看看