闪电 发表于 2021-11-19 09:07:25

WiPy 的快速参考

WiPy 的快速参考http://www.micropython.com.cn/en/picture/PinOUT.png以下是 CC3200/WiPy 的快速参考。如果这是您第一次使用该板,请考虑先阅读以下部分:
[*]关于 WiPy 的一般信息
[*]WiPy 教程和示例

通用板控制(包括睡眠模式)S查看machine模块:import machinehelp(machine) # display all members from the machine modulemachine.freq() # get the CPU frequencymachine.unique_id() # return the 6-byte unique id of the board (the WiPy's MAC address)machine.idle()      # average current decreases to (~12mA), any interrupts wake it upmachine.lightsleep()# everything except for WLAN is powered down (~950uA avg. current)                      # wakes from Pin, RTC or WLANmachine.deepsleep()   # deepest sleep mode, MCU starts from reset. Wakes from Pin and RTC.


引脚和 GPIO参见 machine.Pin.from machine import Pin# initialize GP2 in gpio mode (alt=0) and make it an outputp_out = Pin('GP2', mode=Pin.OUT)p_out.value(1)p_out.value(0)p_out.toggle()p_out(True)# make GP1 an input with the pull-up enabledp_in = Pin('GP1', mode=Pin.IN, pull=Pin.PULL_UP)p_in() # get value, 0 or 1


计时器请参阅 machine.TimerWiPy 和machine.Pin。Timerid的取值从 0 到 3。:from machine import Timerfrom machine import Pintim = Timer(0, mode=Timer.PERIODIC)tim_a = tim.channel(Timer.A, freq=1000)tim_a.freq(5) # 5 Hzp_out = Pin('GP2', mode=Pin.OUT)tim_a.irq(trigger=Timer.TIMEOUT, handler=lambda t: p_out.toggle())


PWM(脉宽调制)请参阅machine.Pin 和 machine.Timer。from machine import Timer# timer 1 in PWM mode and width must be 16 butstim = Timer(1, mode=Timer.PWM, width=16)# enable channel A @1KHz with a 50.55% duty cycletim_a = tim.channel(Timer.A, freq=1000, duty_cycle=5055)


ADC(模数转换)参见machine.ADCWiPy.from machine import ADCadc = ADC()apin = adc.channel(pin='GP3')apin() # read value, 0-4095


UART(串行总线)参见 machine.UART.from machine import UARTuart = UART(0, baudrate=9600)uart.write('hello')uart.read(5) # read up to 5 bytes


SPI总线请参阅machine.SPI.from machine import SPI# configure the SPI master @ 2MHzspi = SPI(0, SPI.MASTER, baudrate=200000, polarity=0, phase=0)spi.write('hello')spi.read(5) # receive 5 bytes on the busrbuf = bytearray(5)spi.write_readinto('hello', rbuf) # send and receive 5 bytes


I2C总线参见 machine.I2C.from machine import I2C# configure the I2C busi2c = I2C(baudrate=100000)i2c.scan() # returns list of slave addressesi2c.writeto(0x42, 'hello') # send 5 bytes to slave with address 0x42i2c.readfrom(0x42, 5) # receive 5 bytes from slavei2c.readfrom_mem(0x42, 0x10, 2) # read 2 bytes from slave 0x42, slave memory 0x10i2c.writeto_mem(0x42, 0x10, 'xy') # write 2 bytes to slave 0x42, slave memory 0x10


看门狗定时器 (WDT)参见 machine.WDT.from machine import WDT# enable the WDT with a timeout of 5s (1s is the minimum)wdt = WDT(timeout=5000)wdt.feed()


实时时钟 (RTC)见机器. machine.RTCfrom machine import RTCrtc = RTC() # init with default time and datertc = RTC(datetime=(2015, 8, 29, 9, 0, 0, 0, None)) # init with a specific time and dateprint(rtc.now())def alarm_handler (rtc_o):    pass    # do some non blocking operations    # warning printing on an irq via telnet is not    # possible, only via UART# create a RTC alarm that expires after 5 secondsrtc.alarm(time=5000, repeat=False)# enable RTC interruptsrtc_i = rtc.irq(trigger=RTC.ALARM0, handler=alarm_handler, wake=machine.SLEEP)# go into suspended mode waiting for the RTC alarm to expire and wake us upmachine.lightsleep()


SD卡参见 machine.SD.from machine import SDimport os# clock pin, cmd pin, data0 pinsd = SD(pins=('GP10', 'GP11', 'GP15'))# or use default ones for the expansion boardsd = SD()os.mount(sd, '/sd')


无线局域网 (WiFi)请参阅 network.WLAN和machine.import machinefrom network import WLAN# configure the WLAN subsystem in station mode (the default is AP)wlan = WLAN(mode=WLAN.STA)# go for fixed IP settingswlan.ifconfig(config=('192.168.0.107', '255.255.255.0', '192.168.0.1', '8.8.8.8'))wlan.scan()   # scan for available networkswlan.connect(ssid='mynetwork', auth=(WLAN.WPA2, 'mynetworkkey'))while not wlan.isconnected():    passprint(wlan.ifconfig())# enable wake on WLANwlan.irq(trigger=WLAN.ANY_EVENT, wake=machine.SLEEP)# go to sleepmachine.lightsleep()# now, connect to the FTP or the Telnet server and the WiPy will wake-up


Telnet 和 FTP 服务器看 network.Serverfrom network import Server# init with new user, password and seconds timeoutserver = Server(login=('user', 'password'), timeout=60)server.timeout(300) # change the timeoutserver.timeout() # get the timeoutserver.isrunning() # check whether the server is running or not


心跳指示见wipy.import wipywipy.heartbeat(False)# disable the heartbeat LEDwipy.heartbeat(True)   # enable the heartbeat LEDwipy.heartbeat()       # get the heartbeat state


页: [1]
查看完整版本: WiPy 的快速参考