zoukankan      html  css  js  c++  java
  • 树莓派3uart wifi模块调试 (浪费了我3天时间的宝贵经验)

    最开始我是连接一个wifi模块到我的arduino uno上,可是uno只有一个uart并且这个uart和usb串口相连的。出现了一些和很奇怪的问题。进入设置模式(m0=1 , m1=1)后,确实能够设置,设置的参数都保存成功了,但是使用c3c3c3无法获取到版本没有任何返回,可能当时是我的rx数据线的没有接触的问题。

    后来我将两块uart wifi模块通讯,在电脑上外接usb转串口 (2个usb转换器,通讯一点问题没有,使用linux的minicom. minicom一定要将硬件流控制关闭,8N1协议 9600波特率)一点问题都没有。

    然后我想既然没问题,我把两个模块直接arduino mega2560上,mega2560有4个uart,两块网卡全部接上,测试收发,两块模块都能互相发送和接收,但是接收到的数据有问题,中间出现乐很多乱码,不知道是不是arduino mega2560本身的问题。

    推理可以证明:

    1.两块无线模块是好的,因为可以通过usb转串口的 minicom进行通讯,并且没有乱码,传输的数据全部正确

    2.arduino mega2560可以传输数据,但是有乱码,可能因为mega2560的串口有关系。

    既然模块是好的,我就想到另一个测试方法,将一块模块使用usb串口接到pc上,另一块直接接到我的树莓派的uart接口上。结果很伤心。

    树莓派上使用pyserial写好的程序只能发送,而且pc机上的模块接收不到任何pyserial发送过来的数据,查了好多资料,后来发现uart和树莓派上蓝牙相连的,蓝颜使用该默认的uart功能,于是找到了以下资料:

    http://www.cnblogs.com/raffeale/articles/5575162.html  树莓派上uart的设置

    你必须关闭蓝牙的uart,以及ras-config中必须关闭serial,将/boot/cmdline.txt中的对/dev/ttyAMA0相关的删除掉。

    在你的/boot/config.txt的最下面加上如下代码

    dtoverlay=pi3-miniuart-bt    (这个文件可以在/boot/overlay目录中找到,如果没有可能会有个 pi3-miniuart-bt-overlay,这个也可以,可能因为树莓派出厂的日期不同模块名不同,我在网上找到有人提供pi3-miniuart-bt-overlay模块)

    注释掉/boot/config.txt中其他的uart设置,这个最好全注释掉,uart_enable=1也注释掉!切记!

    sudo apt-get update

    sudo apt-get upgrade

    sudo reboot

    从启后树莓派的uart可以正常使用了,使用minicom 选择/dev/ttyAMA0接口,8n1 9600一切正常,pc可以收到,pc发送树莓派也能收到了。到此为止。

     pyserial 3.0.1有个小问题,刚发现的

    serial.is_readable()函数最好不用用就算有数据发过去都会卡主不动。使用serial.in_waiting属性来检查就ok。然后直接read

    e39-ttl-100一般问题:

    1.能发送无法接收,检查m0,m1引脚社否设置正确的电平( m0=1,m1=0 这是全双工模式)

    2.检查无线rx数据线是否接触正常或者更换rx数据线试试。

    3.检查aux是否为1,无线模块初始化完aux会是高电平

    注意:minicom通讯或者使用其他串口编程库的时候一定要注意一些细节,8N1 8=8个字节 , N=无效验位 , 1=停止位,这几个必须设置相同,还有硬件流控制与软件流控制全部关闭(minicom里有这个选项,如果不设置硬件流控制默认打开)

    onxoff=False, rtscts=False, dsrdtr=False 这3个参数是变成时候可能会遇到,pyserial默认值就是false,如果你使用pyserial就不需要设置这几个参数了,默认值就ok!

  • 相关阅读:
    《哈佛商业评论》2018正刊12期与增刊25期的点评
    《财经》2018年共30+1期的点评与摘抄
    4星|《人人都在说谎》:社会科学方面有趣的数据分析方法与结论
    3星|侯世达《我是个怪圈》:关于人类意识的各种哲学思辨
    虚拟机 SUSE Linux Enterprise Server 12 SP2 64
    虚拟机 CentOS7 64
    虚拟机 ubuntu 16.04
    虚拟机 windows xp sp3 原版
    C#实现控制Windows系统关机、重启和注销的方法
    日期时间设置 "2018-05-04T16:36:23.6341371+08:00" 格式
  • 原文地址:https://www.cnblogs.com/raffeale/p/5576138.html
Copyright © 2011-2022 走看看