久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2159|回復: 1
打印 上一主題 下一主題
收起左側

電腦控制單片機控制GSM模塊發送AT指令是怎么工作的?

[復制鏈接]
跳轉到指定樓層
樓主
ID:493416 發表于 2019-8-21 20:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本意:想通過單片機控制GSM模塊 通過AT指令向服務器發送數據。
但是我看到網上很多通過上位機軟件直接發送AT指令,然后可以收到回顯。想知道這個流程。
問題1:這個流程是否是電腦通過USB轉串口線連到了單片機,然后單片機通過另外一個串口連接到一個GSM模塊,那是不是用到了兩個串口?


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

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

  3. #等待ESP-01模塊初始化,忽略啟動時的內部信息
  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指令執行失敗
  21.                                 # 結束程序排查原因
  22.                                 break
  23.                         elif buf.find('ATOK') > -1:
  24.                                 # 說明AT指令執行成功
  25.                                 # 成功進入AT指令模式
  26.                                 # 設置WIFI模式為sta模塊
  27.                                 sendToUart(CWMODE_CUR)
  28.                         elif buf.find(CWMODE_CUR) > -1:
  29.                                 # 設置sta模式成功,連接AP
  30.                                 sendToUart(CWJAP_CUR)
  31.                                 LED(1).on()
  32.                         elif buf.find('WIFIGOTIP') > -1:
  33.                                 # 連接AP成功
  34.                                 # 開始連接TCP Server
  35.                                 pyb.delay(150)
  36.                                 sendToUart(CIPSTART)
  37.                                 LED(2).on()
  38.                         elif buf.find(CIPSTART) > -1:
  39.                                 # 連接TCP Server成功,發送數據
  40.                                 CIPSEND = CIPSEND % str(len(msg))
  41.                                 sendToUart(CIPSEND)
  42.                                 LED(3).on()
  43.                         elif buf.find('>') > -1:
  44.                                 # 發送數據
  45.                                 sendToUart(msg)
  46.                                 LED(4).on()
復制代碼


希望大佬描述一下整個流程,不需要管代碼。謝謝。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:138097 發表于 2019-8-22 08:13 | 只看該作者
1.“網上很多通過上位機軟件直接發送AT指令,然后可以收到回顯”,這個一般是不用單片機,直接用電腦串口轉TTL到你的GSM模塊上,電腦直接和GSM通信的,一發一收。你用單片機這樣做,那就要兩個串口,一個收指令,一個發指令,多此一舉。
2.對的,就是這樣,單片機就是做串口的收發處理啊,你串口1中斷接收數據,然后處理或者不處理,再通過串口2發送數據(串口2連接GSM)
3.額,你不會仿真嗎?仿真看發送和接收的數據是什么樣子的啊。。。或者通過串口打印出來。仿真最便捷啊。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产精品视频 | 在线播放中文字幕 | 国产 日韩 欧美 在线 | 国产露脸国语对白在线 | 蜜桃色网 | 一区二区三区精品视频 | 四虎免费视频 | 亚洲精品一区中文字幕 | 国产精品69av| 美女黄色在线观看 | 免费观看av | 国产福利观看 | 一区二区三区中文字幕 | 美国黄色毛片 | 欧洲一区在线观看 | 日韩在线视频一区 | 日韩一区二区在线观看视频 | 欧美一区二区三区视频在线播放 | 99久久精品免费看国产四区 | 欧美成人精品激情在线观看 | 午夜精品福利视频 | 日本高清视频在线播放 | 亚洲一区二区三区在线视频 | 久久蜜桃av一区二区天堂 | 欧美日韩在线视频一区 | 在线一区视频 | 国产精品久久久久无码av | 久久久久国产精品一区二区 | 欧美成人在线免费 | 日韩和的一区二区 | 亚洲喷水 | 午夜一级黄色片 | 视频在线亚洲 | 国产精品毛片久久久久久久 | 欧美精品一区二区三区蜜桃视频 | 亚洲精品九九 | 日韩中文视频 | 国产色婷婷精品综合在线手机播放 | 高清一区二区 | 免费观看一级毛片 | 中文一区 |