第三節 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
|