Micropython通用控制
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()
posted on 2019-07-29 10:53 iBoundary 阅读(3705) 评论(0) 编辑 收藏 举报