Skocz do zawartości

dernis

Użytkownicy
  • Zawartość

    5
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O dernis

  • Ranga
    2/10

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Panowie jednak coś jest na rzeczy... Dostałem odpowiedz na Qt: Nonono. If You use Windows && Qt 5.13.1/5.12.5 then it is a bug in QSP (just update Qt to latest version 5.13.2/5.12.6 or to use a previous version 5.13.0/5.12.4). waitForBytesWritten() Don't do that. więc gdyby ktoś miał podobny problem to można użyć w/w funkcji na potwierdzenie błędu od strony naszej wersji Qt. instaluje wszystko offline i myślę że rozwiąże to mój problem.
  2. dla tych którzy mają problem z portem a mianowicie z zapisem:) Nie jest to wina bug-a. Musimy zaimplementować: this->device->waitForBytesWritten(); wszystko wtedy działa.
  3. Więc tak po wysłaniu 1 lub 0 za pierwszym razem wysteruje mi port następnie przestaje nadawać i tylko po ponownym podłączeniu urządzenia mogę cokolwiek zrobić tak jakby nie mogło zresetować tego co wystawiam na początku. Nic nie trafia do Received po tym tym pierwszym razie jak gdyby go blokowało.. Jeśli odpalę aplikacje Qt Block Master Example wszystko jest ok.
  4. z rozpędu.. chodziło że z realterm-a wysyłając (z polecenia send ASCII) obsługa jest oki. Returna wlepiłem bo już próbuję wszystkiego.
  5. Mam problem z NucleoF446RE a mianowicie program w Qt zadziała tylko raz. Po połączeniu mogę tylko raz zapalić diode, później musze rozłączyć i połączyć i tak w kółko. Co może być problemem?? Wygląda jakbym miał zapchany port. Terminal działa za to bez problemowo.. Obsługa w Qt oraz nucleo... Proszę o pomoc.. już nie mam siły a chciałbym się z tym dogadać i zrozumieć żeby ruszyć dalej;/ /* USER CODE BEGIN PFP */ void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { uint8_t Data[50]; // Tablica przechowujaca wysylana wiadomosc. uint16_t size = 0; // Rozmiar wysylanej wiadomosci { // Odebrany znak zostaje przekonwertowany na liczbe calkowita i sprawdzony // instrukcja warunkowa switch (atoi(&Received)) { case 0: // Jezeli odebrany zostanie znak 0 size = sprintf(Data, "STOP\n\r"); HAL_GPIO_WritePin(D1_GPIO_Port, D1_Pin, GPIO_PIN_RESET); break; case 1: // Jezeli odebrany zostanie znak 1 size = sprintf(Data, "START\n\r"); HAL_GPIO_WritePin(D1_GPIO_Port, D1_Pin, GPIO_PIN_SET); break; } HAL_UART_Transmit_IT(&huart2, Data, size); // Rozpoczecie nadawania danych z wykorzystaniem przerwan HAL_UART_Receive_IT(&huart2, &Received, 1); // Ponowne włączenie nasłuchiwania } } /* USER CODE END PFP */ void MainWindow::sendMessageToDevice(QString message) { if(this->device->isOpen() && this->device->isWritable()) { this->addToLogs("Wysyłam informacje do urządzenia " + message); this->device->write(message.toStdString().c_str()); } else { this->addToLogs("Nie mogę wysłać wiadomości. Port nie jest otwarty!"); } } void MainWindow::on_pushButtonLedOn_clicked() { this->sendMessageToDevice("1"); } void MainWindow::on_pushButtonLedOff_clicked() { this->sendMessageToDevice("0") ; return; }
×
×
  • Utwórz nowe...