quickref.rst 3.05 KB
Newer Older
1
2
.. _quickref:

3
Quick reference for the pyboard
4
===============================
5

6
7
.. image:: http://micropython.org/resources/pybv10-pinout.jpg
    :alt: PYBv1.0 pinout
8
    :width: 700px
9
10
11

General board control
---------------------
12
13

See :mod:`pyb`. ::
14
15
16
17
18
19
20
21
22
23
24
25
26

    import pyb

    pyb.delay(50) # wait 50 milliseconds
    pyb.millis() # number of milliseconds since bootup
    pyb.repl_uart(pyb.UART(1, 9600)) # duplicate REPL on UART(1)
    pyb.wfi() # pause CPU, waiting for interrupt
    pyb.freq() # get CPU and bus frequencies
    pyb.freq(60000000) # set CPU freq to 60MHz
    pyb.stop() # stop CPU, waiting for external interrupt

LEDs
----
27
28

See :ref:`pyb.LED <pyb.LED>`. ::
29
30
31
32
33
34
35
36
37
38

    from pyb import LED

    led = LED(1) # red led
    led.toggle()
    led.on()
    led.off()

Pins and GPIO
-------------
39
40

See :ref:`pyb.Pin <pyb.Pin>`. ::
41
42
43
44
45
46
47
48
49
50
51
52

    from pyb import Pin

    p_out = Pin('X1', Pin.OUT_PP)
    p_out.high()
    p_out.low()

    p_in = Pin('X2', Pin.IN, Pin.PULL_UP)
    p_in.value() # get value, 0 or 1

External interrupts
-------------------
53
54

See :ref:`pyb.ExtInt <pyb.ExtInt>`. ::
55
56
57
58
59
60
61
62

    from pyb import Pin, ExtInt

    callback = lambda e: print("intr")
    ext = ExtInt(Pin('Y1'), ExtInt.IRQ_RISING, Pin.PULL_NONE, callback)

Timers
------
63
64

See :ref:`pyb.Timer <pyb.Timer>`. ::
65
66
67
68
69
70
71
72
73
74

    from pyb import Timer

    tim = Timer(1, freq=1000)
    tim.counter() # get counter value
    tim.freq(0.5) # 0.5 Hz
    tim.callback(lambda t: pyb.LED(1).toggle())

PWM (pulse width modulation)
----------------------------
75
76

See :ref:`pyb.Pin <pyb.Pin>` and :ref:`pyb.Timer <pyb.Timer>`. ::
77
78
79
80
81
82
83
84
85
86

    from pyb import Pin, Timer

    p = Pin('X1') # X1 has TIM2, CH1
    tim = Timer(2, freq=1000)
    ch = tim.channel(1, Timer.PWM, pin=p)
    ch.pulse_width_percent(50)

ADC (analog to digital conversion)
----------------------------------
87
88

See :ref:`pyb.Pin <pyb.Pin>` and :ref:`pyb.ADC <pyb.ADC>`. ::
89
90
91
92
93
94
95
96

    from pyb import Pin, ADC

    adc = ADC(Pin('X19'))
    adc.read() # read value, 0-4095

DAC (digital to analog conversion)
----------------------------------
97
98

See :ref:`pyb.Pin <pyb.Pin>` and :ref:`pyb.DAC <pyb.DAC>`. ::
99
100
101
102
103
104
105
106

    from pyb import Pin, DAC

    dac = DAC(Pin('X5'))
    dac.write(120) # output between 0 and 255

UART (serial bus)
-----------------
107
108

See :ref:`pyb.UART <pyb.UART>`. ::
109
110
111
112
113
114
115
116
117

    from pyb import UART

    uart = UART(1, 9600)
    uart.write('hello')
    uart.read(5) # read up to 5 bytes

SPI bus
-------
118
119

See :ref:`pyb.SPI <pyb.SPI>`. ::
120
121
122
123
124
125
126
127
128
129

    from pyb import SPI

    spi = SPI(1, SPI.MASTER, baudrate=200000, polarity=1, phase=0)
    spi.send('hello')
    spi.recv(5) # receive 5 bytes on the bus
    spi.send_recv('hello') # send a receive 5 bytes

I2C bus
-------
130
131

See :ref:`pyb.I2C <pyb.I2C>`. ::
132
133
134
135
136
137
138
139
140

    from pyb import I2C

    i2c = I2C(1, I2C.MASTER, baudrate=100000)
    i2c.scan() # returns list of slave addresses
    i2c.send('hello', 0x42) # send 5 bytes to slave with address 0x42
    i2c.recv(5, 0x42) # receive 5 bytes from slave
    i2c.mem_read(2, 0x42, 0x10) # read 2 bytes from slave 0x42, slave memory 0x10
    i2c.mem_write('xy', 0x42, 0x10) # write 2 bytes to slave 0x42, slave memory 0x10