|
WiPy 的快速参考![](http://www.micropython.com.cn/en/picture/PinOUT.png) 以下是 CC3200/WiPy 的快速参考。如果这是您第一次使用该板,请考虑先阅读以下部分:
通用板控制(包括睡眠模式)S查看machine模块: - import machine
- help(machine) # display all members from the machine module
- machine.freq() # get the CPU frequency
- machine.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 up
- machine.lightsleep() # everything except for WLAN is powered down (~950uA avg. current)
- # wakes from Pin, RTC or WLAN
- machine.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 output
- p_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 enabled
- p_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 Timer
- from machine import Pin
- tim = Timer(0, mode=Timer.PERIODIC)
- tim_a = tim.channel(Timer.A, freq=1000)
- tim_a.freq(5) # 5 Hz
- p_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 buts
- tim = Timer(1, mode=Timer.PWM, width=16)
- # enable channel A @1KHz with a 50.55% duty cycle
- tim_a = tim.channel(Timer.A, freq=1000, duty_cycle=5055)
复制代码
ADC(模数转换)参见machine.ADCWiPy. - from machine import ADC
- adc = ADC()
- apin = adc.channel(pin='GP3')
- apin() # read value, 0-4095
复制代码
UART(串行总线)参见 machine.UART. - from machine import UART
- uart = 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 @ 2MHz
- spi = SPI(0, SPI.MASTER, baudrate=200000, polarity=0, phase=0)
- spi.write('hello')
- spi.read(5) # receive 5 bytes on the bus
- rbuf = bytearray(5)
- spi.write_readinto('hello', rbuf) # send and receive 5 bytes
复制代码
I2C总线参见 machine.I2C. - from machine import I2C
- # configure the I2C bus
- i2c = I2C(baudrate=100000)
- i2c.scan() # returns list of slave addresses
- i2c.writeto(0x42, 'hello') # send 5 bytes to slave with address 0x42
- i2c.readfrom(0x42, 5) # receive 5 bytes from slave
- i2c.readfrom_mem(0x42, 0x10, 2) # read 2 bytes from slave 0x42, slave memory 0x10
- i2c.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.RTC - from machine import RTC
- rtc = RTC() # init with default time and date
- rtc = RTC(datetime=(2015, 8, 29, 9, 0, 0, 0, None)) # init with a specific time and date
- print(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 seconds
- rtc.alarm(time=5000, repeat=False)
- # enable RTC interrupts
- rtc_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 up
- machine.lightsleep()
复制代码
SD卡参见 machine.SD. - from machine import SD
- import os
- # clock pin, cmd pin, data0 pin
- sd = SD(pins=('GP10', 'GP11', 'GP15'))
- # or use default ones for the expansion board
- sd = SD()
- os.mount(sd, '/sd')
复制代码
无线局域网 (WiFi)请参阅 network.WLAN和machine. - import machine
- from network import WLAN
- # configure the WLAN subsystem in station mode (the default is AP)
- wlan = WLAN(mode=WLAN.STA)
- # go for fixed IP settings
- wlan.ifconfig(config=('192.168.0.107', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
- wlan.scan() # scan for available networks
- wlan.connect(ssid='mynetwork', auth=(WLAN.WPA2, 'mynetworkkey'))
- while not wlan.isconnected():
- pass
- print(wlan.ifconfig())
- # enable wake on WLAN
- wlan.irq(trigger=WLAN.ANY_EVENT, wake=machine.SLEEP)
- # go to sleep
- machine.lightsleep()
- # now, connect to the FTP or the Telnet server and the WiPy will wake-up
复制代码
Telnet 和 FTP 服务器看 network.Server - from network import Server
- # init with new user, password and seconds timeout
- server = Server(login=('user', 'password'), timeout=60)
- server.timeout(300) # change the timeout
- server.timeout() # get the timeout
- server.isrunning() # check whether the server is running or not
复制代码
心跳指示见wipy. - import wipy
- wipy.heartbeat(False) # disable the heartbeat LED
- wipy.heartbeat(True) # enable the heartbeat LED
- wipy.heartbeat() # get the heartbeat state
复制代码
|
|