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