23.03.2021, 19:02
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
HAL Nextion дисплей - обмен данными
Добрый день.
Кто работал с Nextion, подскажите, как принимать данные!
Отображение данных нормально пошло:
Код:
|
t++;
sprintf(test,"tM1.txt=\"12\"\xFF\xFF\xFFtM2.txt=\"%3i\"\xFF\xFF\xFFtM3.txt=\"3d\"\xFF\xFF\xFF",t);
HAL_UART_Transmit_IT(&huart2,test,80); |
А с приемом не пойму - как его организовать.
сделал:
Код:
|
uint8_t buffRx[8]={0};
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
if(huart==&huart2){
char s[8];
sprintf(s,"%8c",(char*)buffRx);
HAL_UART_Transmit_IT(&huart3, (char*) s,sizeof(buffRx)); //проверка в терминале
HAL_UART_Receive_IT(&huart2, buffRx,sizeof(buffRx));
}
}
void main(){
.....
HAL_UART_Receive_IT(&huart2,(uint8_t*) buffRx, sizeof(buffRx));
...
while(1){
.... |
Там сложность в том, что читать надо после символа \x0A... а выводится:
20 20 20 20 20 20 20 90 00 00 00 00 00 00 00 31 31 35 32 00 00 00 00 00
Подскажите , как обеспечить чтение с Nextion.
|
|
|
|
25.03.2021, 11:40
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: HAL Nextion дисплей - обмен данными
Подскажите, как правильно прочитать данные произвольной длины с помощью HAL_UART_Receive_IT ?
Напишу, как у меня получилось наладить обмен:
Цитата:
|
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart ){
//huart2 - Nextion
if(huart==&huart2){
char cmpC[8];
char chrTransmit[8];
if(strstr(RX_data2,"StartA")›0){
fTransmit=1;
}else if(strstr(RX_data2,"sTar")›0){
fDatchikAll=1;
}else if(strstr(RX_data2,"Stop")›0){
StopAll();
}
for(int i=0;i‹sizeof(RX_data2);i++){
RX_data2[i]=0;
}
HAL_UART_Receive_IT(&huart2, RX_data2, sizeof(RX_data2));
}
}
.....
в main():
while(1){
....
if(fNextion==1){//флаг в таймере на 300-1000мс
fNextion=0;
char strN[30]={0};
char strNextion[370]={0};
for(int i=0;i‹sizeof(strNextion);i++){
strNextion[i]=0;
}
sprintf(strNextion,"tD1.txt=\"void\"\xff\xff\xff") ;
for(int i=1; i‹=numDatchikMax;i++){
sprintf(strN,"tD%i.txt=\"%.3f\"\xff\xff\xff",i,aDO ut[i]);
strcat(strNextion,strN);
}
HAL_UART_Transmit_IT(&huart2,strNextion, sizeof(strNextion));
}
...
}
|
не забыть в Сube поставить NVIC прерывание UART
Последний раз редактировалось sanstan; 08.04.2021 в 15:19.
|
|
|
|
25.03.2021, 12:10
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,703
Сказал спасибо: 189
Сказали Спасибо 3,193 раз(а) в 2,070 сообщении(ях)
|
Re: HAL Nextion дисплей - обмен данными
я на каждой кнопке или слайдере написал по своему обмен.
к примеру вот слайдер по событию touch release
print "ADR"
print ","
print "33"
print ","
print "6"
print ","
print h0.val
printh 0d
printh 0a
ну у меня их там много и у каждого типа свой двойной адрес.
конец строки по классике - \r\n
__________________
кагмаподэ магмаподэ
Последний раз редактировалось индюк; 25.03.2021 в 12:14.
|
|
|
|
25.03.2021, 12:18
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,703
Сказал спасибо: 189
Сказали Спасибо 3,193 раз(а) в 2,070 сообщении(ях)
|
Re: HAL Nextion дисплей - обмен данными
еще надо его собственные высеры отключить вот так -
bauds=115200 (тут я большую скорость задаю)
bkcmd=0 (а тут заставляю его полностью молчать. работают только мои прописанные выводы)
__________________
кагмаподэ магмаподэ
|
|
|
|
25.03.2021, 12:31
|
|
Прописка
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
|
Re: HAL Nextion дисплей - обмен данными
bkcmd=0 - заработало без эхо!!
а на стороне микроконтроллера как обрабатываешь информацию с панели?
Последний раз редактировалось sanstan; 08.04.2021 в 13:38.
|
|
|
|
25.03.2021, 12:48
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,703
Сказал спасибо: 189
Сказали Спасибо 3,193 раз(а) в 2,070 сообщении(ях)
|
Re: HAL Nextion дисплей - обмен данными
Дма. Я на самом низком уровнн пишу для процов типа ф0. Си но почти как ассемблер.
Хал этот много лишнего приписывает и хер пойми чо там индусы написали. Больше времени уходит на разбирательства с кубом чеммнаписать руками все самому
__________________
кагмаподэ магмаподэ
|
|
|
Эти 2 пользователя(ей) сказали Спасибо индюк за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:25.
|
|