Send STM32 data to nextion display via UART

...
/* USER CODE BEGIN Includes */
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
/* USER CODE END Includes */
...
/* USER CODE BEGIN 0 */
uint8_t Cmd_End[3] = {0xff,0xff,0xff};
 
void NEXTION_SendNum (char *obj, int32_t num)
{
	uint8_t *buffer = malloc(30*sizeof (char));
	int len = sprintf ((char *)buffer, "%s.val=%ld", obj, num);
	HAL_UART_Transmit(&huart1, buffer, len, 1000);
	HAL_UART_Transmit(&huart1, Cmd_End, 3, 100);
	free(buffer);
}
 
void NEXTION_SendString (char *ID, char *string)
{
	char buf[50];
	int len = sprintf (buf, "%s.txt=\"%s\"", ID, string);
	HAL_UART_Transmit(&huart1, (uint8_t *)buf, len, 1000);
	HAL_UART_Transmit(&huart1, Cmd_End, 3, 100);
}
 
void NEXTION_SendCommand (char *string)
{
	char buf[50];
	int len = sprintf (buf, "%s", string);
	HAL_UART_Transmit(&huart1, (uint8_t *)buf, len, 1000);
	HAL_UART_Transmit(&huart1, Cmd_End, 3, 100);
}
 
void NEXTION_VaweFormADD (int objid, int chnum, int addvalue)
{
	char buf[50];
	int len = sprintf (buf, "add %d,%d,%d", objid, chnum, addvalue);
	HAL_UART_Transmit(&huart1, (uint8_t *)buf, len, 1000);
	HAL_UART_Transmit(&huart1, Cmd_End, 3, 100);
	HAL_UART_Transmit(&huart1, (uint8_t *)buf, len, 1000);
	HAL_UART_Transmit(&huart1, Cmd_End, 3, 100);
}
 
uint8_t RxData = 0;
uint8_t RxData2 = 0;
 
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if (huart->Instance == USART1)
	{
		if (RxData == 0x01)
		{
			///CurrentDisplayPage = 1;
		}
 
		HAL_UART_Receive_IT(&huart1, &RxData, 1);
	}
 
	if (huart->Instance == USART2)
	{
		HAL_UART_Receive_IT(&huart2, &RxData2, 1);
		NEXTION_SendNum("x1",RxData2);
	}
}
/* USER CODE END 0 */
...
///Place next code in main loop:
///Place once -> to enable first UART recieve interrupt: HAL_UART_Receive_IT(&huart1, &RxData, 1); and HAL_UART_Receive_IT(&huart2, &RxData2, 1);
 
///To send data:
NEXTION_SendString("t0","Let's Roll...");
...



1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)

Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Optionally add an image (JPEG only)