Micropython
MicroPython,是Python3编程语言的一个完整软件实现,用C语言编写,被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。
具体请参考:https://micropython.org/
核心板外设定义及使用
STM32F411CE 内部框图
核心板引脚丝印省略字母
P
,例如A0
为PA0
,micropython使用的IO统一为PAx,PBx,PCx…
GPIO
pyb.Pin
定义
PA0-PA15,PB0-PB10,PB12-PB15,PC13-PC15
Pin.IN - configure the pin for input;
Pin.OUT_PP - configure the pin for output, with push-pull control;
Pin.OUT_OD - configure the pin for output, with open-drain control;
Pin.AF_PP - configure the pin for alternate function, pull-pull;
Pin.AF_OD - configure the pin for alternate function, open-drain;
Pin.ANALOG - configure the pin for analog.
pull can be one of:
Pin.PULL_NONE - no pull up or down resistors;
Pin.PULL_UP - enable the pull-up resistor;
Pin.PULL_DOWN - enable the pull-down resistor;
使用
GPIO
1 | from pyb import Pin |
External interrupts 外部中断
定义
ExtInt.IRQ_RISING
ExtInt.IRQ_FALLING
ExtInt.IRQ_RISING_FALLING
pyb.Pin.PULL_NONE
pyb.Pin.PULL_UP
pyb.Pin.PULL_DOWN
使用
GPIO 外部中断
1 | from pyb import Pin, ExtInt |
ADC
pyb.adc
定义
STM32F411 I/O定义
ADC0
外部通道:
PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7,PB0,PB1
内部通道:Temperature,VBAT,VFEF
使用
ADC 外部通道
1 | from pyb import Pin,ADC |
ADC 内部通道
1 | from pyb import Pin,ADC |
Timer 定时器
pyb.Timer
定义
STM32F411 I/O定义
STM32F4x1C 定时器引脚分布
当使用USB时,PA11已被占用
Timer Channel 1 Channel 2 Channel 3 Channel 4 TIM1 PA8 PA9 PA10 PA11 TIM2 PA0, PA5, PA15 PA1, PB3 PA2,PB10 PA3 TIM3 PA6, PB4 PA7, PB5 PB0 PB1 TIM4 PB6 PB7 PB8 PB9 TIM5 PA0 PA1 PA2 PA3 TIM9 PA2 PA3 TIM10 PB8 TIM11 PB9
定时器输入时钟频率:
96Mhz(411)/84Mhz(401):TIM1,TIM9,TIM10,TIM11
48Mhz(411)/42Mhz(401):TIM2,TIM3,TIM4,TIM5
使用
Timer 定时功能
1 | import pyb |
Timer PWM功能
1 | import pyb |
Timer 输入捕获功能
polarity can be one of:
Timer.RISING - 上升沿捕获
Timer.FALLING - 下降沿捕获
Timer.BOTH - 上升/下降沿都捕获.
1 | from pyb import Pin, Timer |
RTC (Real Time Clock)
pyb.RTC
定义
无。
使用
1 | from pyb import RTC |
UART 串口
pyb.UART
定义
USB转串口 交叉连接
STM32F411 I/O定义
UART1:
TX
-PA9,RX
-PA10
UART2:TX
-PA2,RX
-PA3
UART6:TX
-PA11,RX
-PA12 (USB
占用)
UART_REPL: UART1
使用
UART2 串口
1 | from pyb import UART |
SPI 总线
pyb.SPI
定义
STM32F411 I/O定义
SPI2:
NSS
-PB12,SCK
-PB13,MISO
-PB14,MOSI
-PB15
SPI4:NSS
-PB12,SCK
-PB13,MISO
-PA1,MOSI
-PA11 (USB
占用)
SPI5:NSS
-PB1,SCK
-PA10,MISO
-PA12,MOSI
-PB0 (USB
占用)
使用
1 | from pyb import SPI |
I2C 总线
machine.I2C
定义
STM32F411 I/O定义
I2C1:
SCL
-PB6,SDA
-PB7
I2C2:SCL
-PB10,SDA
-PB9
I2C3:SCL
-PA8,SDA
-PB8
使用
1 | from machine import I2C |
Servo Control 舵机控制
pyb.Servo
定义
Servo模块使用了TIM5,故两者不能同时使用,只能二选一。
舵机ID(1-4)对应引脚:PA0,PA1,PA2,PA3
使用
1 | from pyb import Servo |
Switch 按键
pyb.Switch
定义
STM32F4x1Cx核心板 按键为(
KEY
): PA0
使用
1 | from pyb import Switch |
LED
pyb.LED
定义
STM32F4x1 核心板 蓝色LED(
C13
): PC13
使用
1 | from pyb import LED |
一个致力于设计独一无二电子模块的工作室