1 . pyb
import pyb pyb.delay(50) #延時50毫秒 pyb.millis() #返回開機后運行時間 pyb.repl_uart(pyb.UART(1,9600)) #指定repl到串口1 pyb.wfi() #暫停cpu等待中斷喚醒 pyb.freq() #返回cpu的總線頻率 pyb.freq(60000000) #設置cpu頻率為60MHZ pyb.stop() #停止cpu,等待外部中斷喚醒
2. LED控制
from pyb import LED led = LED(1) #指定紅色led,實例化 led.toggle() #翻轉led led.on() #開led led.off() #關led
3. Pins和GPIO的使用
from pyb import Pin p_out = Pin('X1',Pin.OUT_PP) #x1設置為輸出 p_out.hight() #輸出高電平 p_out.low() #輸出低電平 p_in = Pin('X2',Pin.IN,Pin.PULL_UP) #x2設置為輸入,並使能內部上拉電阻 p_in.value() #都取電平
4. 舵機控制
from pyb import Servo s1 = Servo(1) #使用X1控制(x1,VIN,GND) s1.angle(45) #轉到45° s1.angle() #返回現在的角度數 s1.angle(-60,150是0) #1500ms內轉到-60° s1.speed(90) #轉動90°角
5. 外部中斷
from pyb import Pin,ExtInt callback = lambda e :print("interrupt") #設置回調函數 ext ExtInt(Pin('Y1'),ExtInt.IRQ_RISNG,Pin.PULL_NONE,callback) #設置外中斷
6. 定時器
from pyb import Timer tim =Timer(1,freq=1000) #定義定時器1,工作頻率是1000hz tim.counter() #讀取計數器 tim.freq(0.5) #設定定時器頻率為0.5hz tim.callback(lambda t:pyb.LED(1).toggle()) #設置回調函數
7 . PWM
from pyb import Pin,Timer p = Pin('X1') #X1是定時器2的ch1 tim = Timer(2,freq=1000) ch = tim.channel(1,Timer.PWM,pin=p) #設置pwm引腳 ch.pulse_width_percent(5)) #設置pwm輸出占空比
8 . ADC(模數轉換)
from pyb import Pin,ADC adc = ADC(Pin('X19')) #設置ADC輸入引腳 adc.read() #讀取adc轉換的結果,默認是12為方式,參數范圍0~4095
9. DAC(數模轉換)
from pyb import Pin,DAC dac = DAC(Pin('X5')) #設置DAC輸出引腳 dac.write(120) #設置輸出電壓,默認8位模式,參數0~255
10. UART(串口)
from pyb import UART uart = UART(1,9600) #設置串口號以及波特率 uart.write('hello') #輸出 uart.read(5) #最多讀取5個字節
11. SPI總線
from pyb import SPI spi = SPI(1,SPI.MASTER,baudrate=200000,polarity=1,phase=0) #設置SPI參數 spi.send('hello') #發送數據 spi.recv(5) #讀取5個字節 spi.send_recv('hello') #發送並接收5個字節
12. I2C總線
from pyb import I2C i2c = I2C(1,I2C.MASTER,baudrate=100000) #設置I2C參數 i2c.scan() #搜索總線上設備 i2c.send('hello',0x42) #發送5個字節到地址0x42 i2c.recv(5,0x42) #從地址0x42接收5個字節 i2c.mem_read(2,0x42,0x10) #從0x42設備中的內存0x010處讀取2個字節 i2c.mem_write('xy',0x42,0x10) #寫入2個字節到設備0x42的內存地址0x10
13. 加速度傳感器
from pyb import Accel,delay acc = Accel() acc.x() #讀取x軸參數 while True: print(acc.x(),acc.y(),acc.z()) #打印三軸的數據 delay(500)
14. 驅動oled
from machine import I2C i2c=machine.I2C(1) from ssd1306 import SSD1306_I2C oled = SSD1306_I2C(128,64,i2c) oled.text("hello world!",0,0) oled.show()