问题描述
Nextion 显示屏上有 3 个按钮,可在释放时发送代码。我正在使用 UART 接收数据并将数据发送到 Nextion 显示器。我的问题是有时它会正确地检测到显示中的代码,但不幸的是,有时需要多次尝试才能识别按钮中的代码。例如,当我按下 Nextion 显示器上的一个按钮时,它会发送:40 30 01 00 26。我在 stm32 上使用函数而不会中断来接收数据,但有时它在第一次尝试时不起作用。有人能告诉我如何正确设置 UART 通信吗?
代码如下:
uint8_t NEXTION_tlacitka[5]; // pole s daty z displeje od tlacitka
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) // Kod pro rozpoznani dat z displeje bez preruseni
{
// Zapnuti Logic. Analyzéru - Turn on of Logic analyzer
if(NEXTION_tlacitka[2] == 0x04) // rozpoznani dualniho tlacitka z displeje - Dual state button recognition
{
if(NEXTION_tlacitka[3] == 1)// prikaz k zapnuti z displeje - turn on from display
{
NEXTION_power = true; // nastaveni pomocného boolu - setup of bool
}
else{ // prikaz k vypnuti z displeje - turn off
NEXTION_power = false; // nastaveni pomocného boolu - setup of bool
}
}
if(NEXTION_tlacitka[2] == 0x01) // rozpoznani prepnuti displeje pro data 1-4 - recognition of switching page in Nextion display
{
if(NEXTION_tlacitka[3] == 0) // nastaveni promenne pro spravné odesilani dat - recognition of pressing
{
NEXTION_dispej = false;
}
}
if(NEXTION_tlacitka[2] == 0x03) // rozpoznani prepnuti displeje pro data 5-8 - recognition of switching page
{
if(NEXTION_tlacitka[3] == 0)
{
NEXTION_dispej = true; // nastaveni promenne pro spravné odesilani dat
}
}
HAL_UART_Receive_IT(&huart4,NEXTION_tlacitka,5);
}
in main
HAL_UART_Receive_IT(&huart4,5); // funkce bez preruseni pro odebirani dat z tlacitka - function
感谢您对我第一次使用 UART 的任何帮助。谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)