查看: 259|回复: 1

[已解决] Hello_ble例程无法控制led开关

[复制链接]
  • TA的每日心情
    郁闷
    2019-6-28 14:59
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2019-6-26 13:28 | 显示全部楼层 |阅读模式
    本帖最后由 tedczj 于 2019-6-26 13:28 编辑

    基本信息
    • [x] 这个问题满足提问指南
    • [x] 我阅读了开发文档
    • [x] 我使用了最新的库及APP进行测试,但是问题仍然存在
    • [x] 我搜索过类似问题的解决方法但是仍然无法解决
    • [x] 有设备端的LOG信息
    • [] 有编译报错信息
    • [x] 我已填写基本信息
    设备信息
    • 硬件: [Arduino Mega 2560 REV3][openjumpber ble4.0]
    • 接入方式: [BLE]
    • package版本:不知怎么看
    • blinker库版本: 前天刚从github上下载的
    • 开发环境: [Arduino]
    • 操作系统: [Windows 8]
    IDE 中的设置
    • Module: 不知怎么看
    • Flash Mode: 不知怎么看
    • Flash Size: 不知怎么看
    • lwip Variant: 不知怎么看
    • Reset Method: 不知怎么看
    • Flash Frequency: 不知怎么看
    • CPU Frequency: 不知怎么看
    • Upload Using: 不确定
    • Upload Speed: 不知怎么看
    问题描述
    mega 2560 r3板子和ble4.0模块都是openjumber买的, ble4.0收到后没有工具能够查看或者修改参数,全是默认配置,看文档波特率应该是9600
    手机版本是iphone 7(12.0) / iphone 8(12.1),blinker app是昨天新下的
    blink库是前两天刚从github上下的,
    代码只在初始化那里稍微改了一下,有参考这个https://www.arduino.cn/thread-85020-1-4.html里面修改了串口,
    现在蓝牙模块tx接的18,rx接的19, 杜邦线是新拆的而且公母两头都用力插紧了的,编译上传都能够成功,blink里可以连接到蓝牙模块(连接后蓝牙模块上闪烁的黄灯变为常亮),串口日志里会正常显示到“SerialBLE initialized...”
    现在的问题有两个:
           1.连接以后在app上点按钮没反应,同时串口监视器上没有对应的日志打印
           1274474962.jpg

           2.如果此时用点力拿着杜邦线端子往蓝牙模块排线上按一下,就会开始如图中不停打印日志而且接收的数据有部分是乱码,同时手机端界面无变化,重现概率很高,大概有50%吧,乱码的问题我试了修改Serial.begin(9600)/Serial.begin(115200)都没有用,而且一旦开始打印以后就不会停,哪怕退了blinker关了手机蓝牙也一样
    代码

    kittenblock中小学创客名师推荐的图形化编程软件

    #define BLINKER_PRINT Serial
    #define BLINKER_BLE
    
    #include <Blinker.h>
    
    BlinkerButton Button1("btn-abc");
    BlinkerNumber Number1("num-abc");
    
    int counter = 0;
    
    void button1_callback(const String & state)
    {
        BLINKER_LOG("get button state: ", state);
        digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
    }
    
    void dataRead(const String & data)
    {
        BLINKER_LOG("Blinker readString: ", data);
        counter++;
        Number1.print(counter);
    }
    
    void setup()
    {
        Serial.begin(9600);
        BLINKER_DEBUG.stream(Serial);
    //    BLINKER_DEBUG.debugAll();
        
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, HIGH);
        
        Blinker.begin(19,18,9600);
        Blinker.attachData(dataRead);
        Button1.attach(button1_callback);
    }
    
    void loop()
    {
        Blinker.run();
    }
    LOG信息
    p1.PNG

    捣鼓了很久都搞不定,请各位大神赐教啊

  • TA的每日心情
    奋斗
    2019-7-12 18:42
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2019-7-1 09:42 | 显示全部楼层
    1.模块和arduino是否共地?
    2.把连接的线换了试试
    3.测试下模块波特率是否为9600
    如果你觉得以上内容帮到了你,你可以打赏支持作者
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表