欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 電腦控制單片機(jī)控制GSM模塊發(fā)送AT指令是怎么工作的? [打印本頁(yè)]

作者: 冷瞳啊    時(shí)間: 2019-8-21 20:29
標(biāo)題: 電腦控制單片機(jī)控制GSM模塊發(fā)送AT指令是怎么工作的?
本意:想通過(guò)單片機(jī)控制GSM模塊 通過(guò)AT指令向服務(wù)器發(fā)送數(shù)據(jù)。
但是我看到網(wǎng)上很多通過(guò)上位機(jī)軟件直接發(fā)送AT指令,然后可以收到回顯。想知道這個(gè)流程。
問(wèn)題1:這個(gè)流程是否是電腦通過(guò)USB轉(zhuǎn)串口線連到了單片機(jī),然后單片機(jī)通過(guò)另外一個(gè)串口連接到一個(gè)GSM模塊,那是不是用到了兩個(gè)串口?


問(wèn)題2:如果想用上位機(jī)發(fā)送AT指令通過(guò)單片機(jī)連接的GSM模塊發(fā)送AT指令并收到回顯,這個(gè)過(guò)程是怎樣的呢?是否是上位機(jī)通過(guò)與單片機(jī)相連接的串口先把AT指令發(fā)到單片機(jī),然后單片機(jī)再通過(guò)另外一個(gè)串口向GSM模塊發(fā)送AT命令呢。但是這樣的話,想不到單片機(jī)里的程序應(yīng)該是什么。

問(wèn)題3:用電腦直接燒錄程序,然后單片機(jī)通過(guò)程序控制GSM發(fā)送指令,這個(gè)時(shí)候電腦的usb連接線相當(dāng)于只提供了電源,這個(gè)過(guò)程是我能理解的 。
但是這樣我無(wú)法看到指令的返回值,如果想看到返回值是不是又回到了問(wèn)題2。
燒錄的單片機(jī)程序大概是這樣的:
  1. from pyb import UART
  2. from pyb import LED

  3. #等待ESP-01模塊初始化,忽略啟動(dòng)時(shí)的內(nèi)部信息
  4. pyb.delay(1000)

  5. ESP_UART = UART(4,115200,timeout=100)

  6. def sendToUart(msg):
  7.         ESP_UART.write(msg+'\r\n')

  8. CWMODE_CUR = 'AT+CWMODE_CUR=1'
  9. CWJAP_CUR = 'AT+CWJAP_CUR="TurnipSmart","turnip2016"'
  10. CIPSTART = 'AT+CIPSTART="TCP","192.168.1.116",80'
  11. CIPSEND = 'AT+CIPSEND=%s'
  12. msg = 'Hello,I am TPYBoard.'

  13. if __name__  == '__main__':
  14.         sendToUart('AT')
  15.         while True:
  16.                 if ESP_UART.any()  > 0:
  17.                         buf = ESP_UART.read().decode().replace('\r','').replace('\n','').replace(' ','')
  18.                         print(buf)
  19.                         if buf.find('busyp') > -1 or buf.find('ERROR') > -1:
  20.                                 # AT指令執(zhí)行失敗
  21.                                 # 結(jié)束程序排查原因
  22.                                 break
  23.                         elif buf.find('ATOK') > -1:
  24.                                 # 說(shuō)明AT指令執(zhí)行成功
  25.                                 # 成功進(jìn)入AT指令模式
  26.                                 # 設(shè)置WIFI模式為sta模塊
  27.                                 sendToUart(CWMODE_CUR)
  28.                         elif buf.find(CWMODE_CUR) > -1:
  29.                                 # 設(shè)置sta模式成功,連接AP
  30.                                 sendToUart(CWJAP_CUR)
  31.                                 LED(1).on()
  32.                         elif buf.find('WIFIGOTIP') > -1:
  33.                                 # 連接AP成功
  34.                                 # 開(kāi)始連接TCP Server
  35.                                 pyb.delay(150)
  36.                                 sendToUart(CIPSTART)
  37.                                 LED(2).on()
  38.                         elif buf.find(CIPSTART) > -1:
  39.                                 # 連接TCP Server成功,發(fā)送數(shù)據(jù)
  40.                                 CIPSEND = CIPSEND % str(len(msg))
  41.                                 sendToUart(CIPSEND)
  42.                                 LED(3).on()
  43.                         elif buf.find('>') > -1:
  44.                                 # 發(fā)送數(shù)據(jù)
  45.                                 sendToUart(msg)
  46.                                 LED(4).on()
復(fù)制代碼


希望大佬描述一下整個(gè)流程,不需要管代碼。謝謝。

作者: whx.000    時(shí)間: 2019-8-22 08:13
1.“網(wǎng)上很多通過(guò)上位機(jī)軟件直接發(fā)送AT指令,然后可以收到回顯”,這個(gè)一般是不用單片機(jī),直接用電腦串口轉(zhuǎn)TTL到你的GSM模塊上,電腦直接和GSM通信的,一發(fā)一收。你用單片機(jī)這樣做,那就要兩個(gè)串口,一個(gè)收指令,一個(gè)發(fā)指令,多此一舉。
2.對(duì)的,就是這樣,單片機(jī)就是做串口的收發(fā)處理啊,你串口1中斷接收數(shù)據(jù),然后處理或者不處理,再通過(guò)串口2發(fā)送數(shù)據(jù)(串口2連接GSM)
3.額,你不會(huì)仿真嗎?仿真看發(fā)送和接收的數(shù)據(jù)是什么樣子的啊。。。或者通過(guò)串口打印出來(lái)。仿真最便捷啊。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1