Wejście z klawiatury komputera może odbywać się przez port UART skonfigurowany w poprzednim przykładzie.
UWAGA! Przykład nie działa na przerwaniu, tylko w głównej pętli while(1) (potem trzeba to poprawić).
1 2 3 4 5 | /* USER CODE BEGIN 2 */ const char *text="."; //text to send via UART to PuTTy char pressedKey; //key pressed sended from PuTTy HAL_StatusTypeDef status; /* USER CODE END 2 */ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(externLed_GPIO_Port, externLed_Pin, GPIO_PIN_RESET); HAL_Delay(500); HAL_UART_Transmit(&huart2, text, strlen(text), 1000); HAL_GPIO_WritePin(externLed_GPIO_Port, externLed_Pin, GPIO_PIN_SET); HAL_Delay(500); status = HAL_UART_Receive(&huart2, &pressedKey, 1, 1); //read one single character from input UART if (status==HAL_OK){ //readed char OK const char *receivedText="Received key!"; HAL_UART_Transmit(&huart2, receivedText, strlen(receivedText), 1000); //cout << "Received key!"; switch(pressedKey){ case '1': //key 1 is enabling/disabling greenLed HAL_GPIO_WritePin(greenLed_GPIO_Port, greenLed_Pin, greenLedStatus ? GPIO_PIN_RESET : GPIO_PIN_SET); greenLedStatus = !greenLedStatus; //remember the state break; default: //if not key 1, then send it back HAL_UART_Transmit(&huart2, &pressedKey, 1, 1000); } } } /* USER CODE END 3 */ |