如何解决nextion display 和 stm32 之间的正确通信
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 举报,一经查实,本站将立刻删除。