06 OPENMV中的AT指令集操作

最近一个项目需要使用wifi模块进行图片的传输,传输协议采用tcp协议,使用模块为经典的ESP8266,在此和大家分享一下在OPENMV中使用AT指令集遇到的一些问题:

1:使用AT指令集一个基本常识就是一定要在AT指令后面加入回车换行符,在java中为string类型的“\r\n”,在C中为uint8_t类型的0x0D,0x0A,在openmv中我的方式是使用一个bytearray存储两个字符变量

2:返回帧一定要查看,因为在openMV中的串口是采用uart.any()方式进行数据的接收判断

该函数只要有数据在等待就会调用成功,但是我们每次在串口发送一次AT指令即意味着数据在串口等待发送,所以在AT指令调用的间隙,需要调用该函数进行数据的取出和读取,一是缓解串口的发送压力,二是通过读取8266的返回数据,可以更好的把握模块的链接情况

3:发送间隙最好延时,在博主的项目中,8266的链接情况受wifi信号的制约,但是都不可避免的需要在at指令中延时,延时方法:调用time类 使用time.sleep()函数进行延时,这点在8266 UDP透传的时候也有介绍:

4:内存的及时回收

   在python中变量并不是一块特定的内存,所以在使用完毕后尽量使用del()函数进行手动处理,在一次大的while循环中也应该通过内存回收命令gc.collect()进行处理优化。

最后附上一些新手容易遇见的问题:

  1. AT指令必须大写,每条AT指令后头加一个空格,代码中对应0x0d 0x0a,否则发什么回什么
  2. 连接tcp的时候使用串口助手自动找到IP地址,将其余的全部禁用即可
  3. 退出透传命令什么都不要加,就+++即可

 

猜你喜欢

转载自blog.csdn.net/baidu_25505611/article/details/81117939
06
今日推荐