mbed平台的I/O
无非是digital IO与analog IO
Digital IO
- DigitalOut - Configure and control a digital output pin.
- DigitalIn - Configure and control a digital input pin.
- DigitalInOut - Bi-directional digital pins
mbed网站上每个板子的页面都会有硬件图,告诉你pin的名字。其中蓝色的label都可以用作digital IO。
DigitalOut的话,0是off,1是on;
DigitalIn中,低于0.8v的输入认为是0,高于2.0v的输入认为是1。
DigitalInOut就是上面两个的总和啦。
- BusIn - Flexible way to read multiple DigitalIn pins as one value
- BusOut - Flexible way to write multiple DigitalOut pins as one value
- BusInOut - Flexible way to read/write multiple DigitalInOut pins as one value
Bus是一个很有趣的东西。
利用Bus你可以同时读一串digital IO口,他们的状态存成一个2进制数。详见上面链接。
- PortIn - Fast way to read multiple DigitalIn pins as one value
- PortOut - Fast way to write multiple DigitalOut pins as one value
- PortInOut - Fast way to read/write multiple DigitalInOut pins as one value
Port的话就是同时读入GPIO在同一个port的数字口的数据。比bus要快。详见上面链接。
Port的名字在PortNames.h中。
- PwmOut - Pulse-width modulated output
PWM输出,十分有用。
首先要在硬件图中看接口是否支持pwm输出。其次是不同的pin可能连着一个timer,那么如果他们都是用pwm模式,那么他们的输出是相同的。
PWM的Period、Pulse Width、Duty Cycle都可以设置。详见上面链接。
Analog IO
可以进行analog IO的pin在硬件图上有标明。
读取和输出范围都是0.0~3.3v。
普通的read()读入的是0.0~1.0。read_u16()读入的是从0x0~0xFFFF的u16数。