第三節(jié) I/O口操作
為了保持我們?cè)谥?1單片機(jī)、STM32對(duì)I/O口控制的習(xí)慣性,MT-BLE藍(lán)牙4.0模塊的AT指令操作I/O口仍然保留這個(gè)操作寫法。
如上圖所示:
1. GND、VCC不解釋,DC、DD:燒寫引腳;
2. PIO0、PIO1、PIO2、PIO3、PIO4、PIO5、PIO6,這7個(gè)引腳為I/O口高低電平輸出與讀取;
3. PWM0、PWM1、PWM2、PWM3,這4個(gè)引腳為4路PWM輸出;
4. ADC,這個(gè)引腳為AD采樣;
1.1 查詢/設(shè)置——LED提示方式 指令
| | | | | Para:S,N S:待機(jī)慢閃,連接后常亮 N:待機(jī)暗,連接后亮 亮—低電平 暗—高電平 默認(rèn)Para =S | | |
提示:可以通過此引腳判斷設(shè)備是否處于連接狀態(tài) 示例: Send: AT+LED? // 查詢當(dāng)前LED提示方式 Recv: OK+LED:S // 當(dāng)前為 待機(jī)慢閃,連接后常亮
Send: AT+LED[N] // 設(shè)置LED提示方式為待機(jī)暗,連接后亮 Recv: OK+LED:N // 設(shè)置成功
1.2 查詢/設(shè)置——單個(gè)IO電平 指令
| | | | | Para1: IO 編號(hào):0---6 Para2: IO電平 0或1 | 設(shè)置:AT+PIO[Para1,Para2] | |
注意:當(dāng)設(shè)置IO電平時(shí),IO自動(dòng)切換為上拉輸出模式。當(dāng)查詢IO電平時(shí),IO自動(dòng)切換為上拉輸入模式。 示例: Send: AT+PIO[0]? // 查詢PIO0的電平 Recv: OK+PIO:0#1 // 當(dāng)前PIO0的電平為高
Send: AT+PIO[1][0] // 設(shè)置PIO1輸出低電平 Recv: OK+PIO:1#0 // 電平設(shè)置成功
這個(gè)用途,我們可以通過藍(lán)牙控制電平驅(qū)動(dòng)電路。
1.3 查詢/設(shè)置——多個(gè)IO電平 指令
| | | | | Para1: 多個(gè)IO的集合 0x00--------0x7F 每一位對(duì)應(yīng)一個(gè)IO Para2:IO對(duì)應(yīng)的電平 0x00--------0x7F 每一位對(duì)應(yīng)一個(gè)IO的電平 | 設(shè)置:AT+MPIO[Para1,Para2] | |
注意:當(dāng)設(shè)置IO電平時(shí),IO自動(dòng)切換為上拉輸出模式。當(dāng)查詢IO電平時(shí),IO自動(dòng)切換為上拉輸入模式。 示例: Send: AT+MPIO[0F]? // 查詢PIO0、PIO1、PIO2、PIO3的狀態(tài) Recv: OK+MPIO:0F#0A // PIO0到PIO3的電平分別為 低、高、低、高
Send: AT+MPIO[70,AA] // 設(shè)置PIO4到PIO6分別輸出 低、高、低 Recv: OK+MPIO:70#20 // 設(shè)置成功 注意這里
1.4 查詢/設(shè)置——PWM輸出 指令
| | | | OK+PWM: Para1#Para2#Para3 | Para1: PWM編號(hào): 0---3 Para2: PWM輸出頻率 100-10000Hz 0:停止PWM Para3: PWM占空比 1---100 0:停止PWM | 設(shè)置: AT+PWM[Para1,Para2,Para3] | OK+PWM: Para1#Para2#Para3 |
注意:4路PWM輸出的頻率無法單獨(dú)設(shè)置,必須是一樣的,當(dāng)前輸出的頻率為最后設(shè)置的頻率。 示例: Send: AT+PWM[1]? // 查詢PWM1的當(dāng)前設(shè)置 Recv: OK+PWM:1#1000#50 // PWM1的當(dāng)前設(shè)置為1000Hz,占空比50%
Send: AT+PWM[2,1500,20] // 設(shè)置PWM2為輸出頻率為:1500Hz 占空比:20% Recv: OK+PWM:2#1500#20 // 設(shè)置成功
1.5 查詢/設(shè)置——IO主動(dòng)上報(bào)功能 指令
| | | | | Para: 多個(gè)IO的集合 0x00-----0x7E 每一位對(duì)應(yīng)一個(gè)IO 默認(rèn)值:00 | | |
注意:PIO0沒有主動(dòng)上報(bào)功能; 設(shè)置主動(dòng)上報(bào)功能后,相應(yīng)IO自動(dòng)切換為輸入模式。 使用建議:常態(tài)為高電平,觸發(fā)時(shí)為低電平。 使能IO主動(dòng)上報(bào)功能后,當(dāng)對(duì)應(yīng)IO電平發(fā)生變化時(shí),與之連接的設(shè)備將會(huì)接收到相應(yīng)的提示 Recv: OK+MPIO:7E#3E // PIO6當(dāng)前電平低,PIO1~PIO5為高 Recv: OK+MPIO:70#70 // PIO4~PIO6為高 Recv: OK+MPIO:0E#03 // PIO1~PIO2為高,PIO3為低 示例: Send: AT+EPIO? //查詢當(dāng)前IO主動(dòng)上報(bào)功能 Recv: OK+EPIO:10 // 當(dāng)前PIO4開啟了主動(dòng)上報(bào)功能
Send: AT+EPIO[7E] // 設(shè)置PIO1~PIO6都開啟主動(dòng)上報(bào)功能 Recv: OK+EPIO:7E // 設(shè)置成功
1.6 查詢——ADC當(dāng)前電壓注意:由于adc采樣內(nèi)部基準(zhǔn)源,所以采集電壓的范圍為0-1250mV。 示例: Send: AT+ADC? // 查詢ADC當(dāng)前電壓值 Recv: OK+ADC:100 // ADC當(dāng)前為100mV
|