本帖最后由 mantoukeji 于 2016-11-8 20:09 编辑
第三节 I/O口操作
为了保持我们在之前51单片机、STM32对I/O口控制的习惯性,MT-BLE蓝牙4.0模块的AT指令操作I/O口仍然保留这个操作写法。
如上图所示:
1. GND、VCC不解释,DC、DD:烧写引脚;
2. PIO0、PIO1、PIO2、PIO3、PIO4、PIO5、PIO6,这7个引脚为I/O口高低电平输出与读取;
3. PWM0、PWM1、PWM2、PWM3,这4个引脚为4路PWM输出;
4. ADC,这个引脚为AD采样;
1.1 查询/设置——LED提示方式指令 | | | | | Para:S,N S:待机慢闪,连接后常亮 N:待机暗,连接后亮 亮—低电平 暗—高电平 默认Para =S | | |
提示:可以通过此引脚判断设备是否处于连接状态 示例: Send: AT+LED? // 查询当前LED提示方式 Recv: OK+LED:S // 当前为 待机慢闪,连接后常亮
Send: AT+LED[N] // 设置LED提示方式为待机暗,连接后亮 Recv: OK+LED:N // 设置成功
1.2 查询/设置——单个IO电平指令 | | | | | Para1: IO 编号:0---6 Para2: IO电平 0或1 | | |
注意:当设置IO电平时,IO自动切换为上拉输出模式。当查询IO电平时,IO自动切换为上拉输入模式。 示例: Send: AT+PIO[0]? // 查询PIO0的电平 Recv: OK+PIO:0#1 // 当前PIO0的电平为高
Send: AT+PIO[1][0] // 设置PIO1输出低电平 Recv: OK+PIO:1#0 // 电平设置成功
1.3 查询/设置——多个IO电平指令 | | | | | Para1: 多个IO的集合 0x00--------0x7F 每一位对应一个IO
Para2:IO对应的电平 0x00--------0x7F 每一位对应一个IO的电平 | | |
注意:当设置IO电平时,IO自动切换为上拉输出模式。当查询IO电平时,IO自动切换为上拉输入模式。 示例: Send: AT+MPIO[0F]? // 查询PIO0、PIO1、PIO2、PIO3的状态 Recv: OK+MPIO:0F#0A // PIO0到PIO3的电平分别为 低、高、低、高
Send: AT+MPIO[70,AA] // 设置PIO4到PIO6分别输出 低、高、低 Recv: OK+MPIO:70#20 // 设置成功 注意这里
1.4 查询/设置——PWM输出指令 | | | | OK+PWM: Para1#Para2#Para3 | Para1: PWM编号: 0---3 Para2: PWM输出频率 100-10000Hz 0:停止PWM Para3: PWM占空比 1---100 0:停止PWM | 设置: AT+PWM[Para1,Para2,Para3] | OK+PWM: Para1#Para2#Para3 |
注意:4路PWM输出的频率无法单独设置,必须是一样的,当前输出的频率为最后设置的频率。 示例: Send: AT+PWM[1]? // 查询PWM1的当前设置 Recv: OK+PWM:1#1000#50 // PWM1的当前设置为1000Hz,占空比50%
Send: AT+PWM[2,1500,20] // 设置PWM2为输出频率为:1500Hz 占空比:20% Recv: OK+PWM:2#1500#20 // 设置成功
1.5 查询/设置——IO主动上报功能指令 | | | | | Para: 多个IO的集合 0x00-----0x7E 每一位对应一个IO 默认值:00 | | |
注意:PIO0没有主动上报功能; 设置主动上报功能后,相应IO自动切换为输入模式。 使用建议:常态为高电平,触发时为低电平。 使能IO主动上报功能后,当对应IO电平发生变化时,与之连接的设备将会接收到相应的提示 Recv: OK+MPIO:7E#3E // PIO6当前电平低,PIO1~PIO5为高 Recv: OK+MPIO:70#70 // PIO4~PIO6为高 Recv: OK+MPIO:0E#03 // PIO1~PIO2为高,PIO3为低 示例: Send: AT+EPIO? // 查询当前IO主动上报功能 Recv: OK+EPIO:10 // 当前PIO4开启了主动上报功能
Send: AT+EPIO[7E] // 设置PIO1~PIO6都开启主动上报功能 Recv: OK+EPIO:7E // 设置成功 1.6 查询——ADC当前电压注意:由于adc采样内部基准源,所以采集电压的范围为0-1250mV。 示例: Send: AT+ADC? // 查询ADC当前电压值 Recv: OK+ADC:100 // ADC当前为100mV |