Witam,
Jestem nowy i proszę o pomoc jak w temacie.
Program napisałem w Qt ale nie mogę się dogadać z Nucleo. Jak załączę wszystko mogę tylko jednym stanem obsłużyć diodę, później jakby się zawieszał bądź przepełniał. Z terminala wszystko jest ok więc mam tutaj jakiegoś chochlika;/
Cube IDE -------------------------------------------------------------------------
/* 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
}
}
QT-----------------------------------------------------
/* 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") ;
}