使用XCOM串口调试助手调试ESP8266时,想要连接学校的wifi,通过AT+CWLAP可以显示出附近所有wifi的列表,可是XCOM以ascii码格式显示文本,所以中文就乱码了.

一开始我不知道这是什么编码格式,所以我特意在Notepad++中以utf8编码格式输入中文wifi名,然后改变为ascii编码显示就是这个乱码了.我原本还打算看XCOM的源码,想看看能不能改改,让XCOM可以处理中文,毕竟ESP8266的固件可以识别到中文wifi,然后串口发送的也都是字节数据,所以只要有办法把中文转成ESP8266处理中文所用的编码格式就行.因为不会逆向,所以只好自己写个串口调试的Python脚本了.原本以为很简单的事,却有一个小坑,坑了我一天,就是所谓发送新行,即发送的内容后要加\r\n(回车换行)

import serial
import re

if __name__ == "__main__":
portx = "COM3"
bps = 115200
#esp_obj = Serial_Handler(portx, bps, timeout)
esp_obj=serial.Serial(portx,bps,timeout=0.5)
time.sleep(0.5)
print(esp_obj.name)
print(esp_obj.baudrate)
print(esp_obj.stopbits)
print(esp_obj.bytesize)
print(esp_obj.parity)
while(1):
command=input("send: ")
if(command=='exit'):
break esp_obj.write(command.encode('utf-8'))
esp_obj.write("\r\n".encode('utf-8'))
esp_obj.flush()
size=esp_obj.inWaiting()
recv_byte=esp_obj.read(size)
esp_obj.flushInput()
recv_str=recv_byte.decode('utf-8')
pattern=re.compile('(?<=\\r\\n)[^\\r\\n]+(?=\\r\\n)')#接收的数据都带有\r\n所以需要用正则获取回车换行之间的数据
recv=pattern.findall(recv_str)
for i in recv:
print(i)
esp_obj.close()
exit(0)

最后连接,效果图

最新文章

  1. @寒冬winter 大神的css作业问题
  2. Unity Aspect
  3. SPSS数据分析—基于最优尺度变换的典型相关分析
  4. 使用ADO.NET执行SQL脚本
  5. Android之ADB指令
  6. C语言--指针问题_1
  7. Be a person
  8. xml数据读 swift
  9. First 5 minutes of SQLite
  10. linux下C++开发工具
  11. jQuery_第四章_思维图
  12. 利用浏览器调试APP中的H5页面
  13. dubbo+zookeeper伪集群配置
  14. Python文件读写模式
  15. 【一天一道LeetCode】#15 3Sum
  16. 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 1、两层神经网络的单样本向量化表示与多样本向量化表示
  17. HTTP URL 字符转义 字符编码 、 RFC 3986编码规范
  18. 深度学习基础系列(九)| Dropout VS Batch Normalization? 是时候放弃Dropout了
  19. Android Studio 1.5 注解配置
  20. &lt;2014 05 09&gt; Lucida:我的算法学习之路

热门文章

  1. 从历代GC算法角度刨析ZGC
  2. 使用pycharm打开sqlite的问题
  3. 可迭代对象和迭代器对象以及for循环的本质
  4. python实现通用excel导入到mysql
  5. python学习第八周总结
  6. C-02\规范及随机数rand()原理
  7. 力扣---1148. 文章浏览 I
  8. 依那西普减量维持过程中RA病人自报病情复发可能预示未来放射学进展[EULAR2015_SAT0147]
  9. Oracle &amp; MSSql 数据库表映射方法(dblink or other)
  10. LeetCode-1609 奇偶树