Не рабочий пример в библиотеке Nextion

andrwgldmn аватар
Зарегистрирован: 05.12.2018

Имеется стандартный пример из библиотеки Nextion для работы с кнопкой:

 * @example CompButton.ino
 * @par How to Use
 * This example shows that when the button component on the Nextion screen is released,
 * the text of this button will plus one every time.      
 * @author  Wu Pengfei (email:<pengfei.wu@itead.cc>)
 * @date    2015/7/10
 * @updated 2016/12/25 bring HMI up to v0.32 to avoid too old issues
 * @convert by Patrick Martin, no other changes made
 * @copyright 
 * Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.

#include "Nextion.h"

 * Declare a button object [page id:0,component id:1, component name: "b0"]. 
NexButton b1 = NexButton(1, 4, "b1");

char buffer[100] = {0};

 * Register a button object to the touch event list.  
NexTouch *nex_listen_list[] = 

 * Button component pop callback function. 
 * In this example,the button's text value will plus one every time when it is released. 
void b1PopCallback(void *ptr)
    uint16_t len;
    uint16_t number;
    NexButton *btn = (NexButton *)ptr;
    memset(buffer, 0, sizeof(buffer));

    /* Get the text value of button component [the value is string type]. */
    btn->getText(buffer, sizeof(buffer));
    number = atoi(buffer);
    number += 1;

    memset(buffer, 0, sizeof(buffer));
    itoa(number, buffer, 10);

    /* Set the text value of button component [the value is string type]. */

void setup(void)
    /* Set the baudrate which is for debug and communicate with Nextion screen. */

    /* Register the pop event callback function of the current button component. */
    b1.attachPop(b1PopCallback, &b1);
    dbSerialPrintln("setup done"); 

void loop(void)
     * When a pop or push event occured every time,
     * the corresponding component[right page id and component id] in touch event list will be asked.

Сразу скажу что моя кнопка находится на странице 2, т.е page1 (ид кнопки и номер страницы указаны в скетче правильно). При загрузке скетча на нажатие кнопки реакции 0 (всё подключено правильно).

В порте видно это:

19:57:24.513 -> ⸮⸮⸮bkcmd=1⸮⸮⸮page 0⸮⸮⸮

 Такое впечатление что нету перехода на вторую страницу (page1). Если это так, то какие возможные пути решения? Интернеты рыл, но ничего не нашёл.. Спасибо.

DetSimen аватар
Зарегистрирован: 25.01.2017

Вот один из самых стандартных способов решения