Pomoc w komunikacji nextion inteligent-xmega256A3U
: 15 gru 2024, 21:53
Witam. Panowie mam bardzo duży problem z komunikacją pomiędzy nextion inteligent a atxmega256A3U.
Chodzi mi o to jak odbiera się dane z nextiona do cpu.
np. klikam w button i powinno wysłać : print "AT=SAFEvcc" i to powinen rozpoznać cpu.
Zawsze do tej pory korzystałem z takiej skladni we wszystkich moich projektach i było dobrze, a teraz nici z tego.
Ustawienia moich uartów: dodam tylko że zamiast baudrate=57600 dałem 50000 bo procek chodzi na 48Mhz
A tak odbieram:
Nigdy nie miałem doczynienia z czymś takim jak: Receiveddata = Inkey(#2) .
Bardzo bym prosił o choćby jakiś sprawdzony przykład komunikacji dwustronnej nextion<>cpu.
Dodam że skorzystałem nawet ze sztucznej mądrości to tylko namieszła mi w głowie, aczkolwiek pomogła napisać procedury do środowiska VB.NET, ale w bascomie to już nie za bardzo.
Chodzi mi o to jak odbiera się dane z nextiona do cpu.
np. klikam w button i powinno wysłać : print "AT=SAFEvcc" i to powinen rozpoznać cpu.
Zawsze do tej pory korzystałem z takiej skladni we wszystkich moich projektach i było dobrze, a teraz nici z tego.
Ustawienia moich uartów: dodam tylko że zamiast baudrate=57600 dałem 50000 bo procek chodzi na 48Mhz
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Rem ***************************** Komunikacja UART *********************************
- 'Rem *** CONFIG COM1 Połączenie bluetootch JDY-34
- Config Com3 = 50000 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
- Open "COM3:" For Binary As #3
- Config Serialin2 = Buffered , Size = 124
- Enable Usartd0_rxc , Lo
- Config Input3 = Cr , Echo = Crlf
- Rem *** CONFIG COM5 E220-900T30D >><< NEXTION HMI 34200
- Config Com2 = 50000 , Mode = Asynchroneous , Parity = None , Stopbits = 1 , Databits = 8
- Open "COM2:" For Binary As #2
- Config Serialin1 = Buffered , Size = 200
- 'Config Serialout1 = Buffered , Size = 200
- Enable Usartc1_rxc , Lo
- Config Input1 = Cr , Echo = Crlf
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- Rem ************ RX - TX >< NEXTION ********
- Rxtx_zasilacz_jdy24:
- Input #3 , Odbieram_dane
- Bufor = Odbieram_dane
- Clear Serialin2
- Lcd_text "RX=" + Bufor + " " , 8 , 273 , 2 , Yellow , Black , 1
- If Bufor = "AT=CLOCK" Then
- Waitms 30
- Clear Serialin2
- Print #3 , "Zegar-" ; Godz_txt ; ":" ; Min_txt ; ":" ; Sek_txt
- Elseif Bufor = "AT=DATA" Then
- Waitms 30
- Clear Serialin2
- Pokaz_date = 1
- Call Zegarek
- Print #3 , "DATA: " ; Data_sd
- Elseif Bufor = "AT=SETCLOCK" Then
- Input #3 , Odbieram_dane 'Noecho
- Waitms 20
- Bcount = Split(odbieram_dane , Tablica_rx(1) , ":")
- G = Val(tablica_rx(1))
- M = Val(tablica_rx(2))
- S = Val(tablica_rx(3))
- Call Settime
- Waitms 20
- Call Zegarek
- Print #3 , Czas
- Clear Serialin2
- Elseif Bufor = "AT=SETDATA" Then
- Input #3 , Odbieram_dane
- Waitms 20
- Bcount = Split(odbieram_dane , Tablica_rx(1) , "-")
- Rok = Val(tablica_rx(1)) ' rok
- Miesiac = Val(tablica_rx(2)) ' miesiac
- Dzien = Val(tablica_rx(3)) ' dzien
- Dzien_tygodnia = Val(tablica_rx(4)) ' dzien_tygodnia
- Call Setdata
- Clear Serialin2
- Print #3 , Data_sd
- Elseif Bufor = "AT=LCDPWM" Then
- Waitms 20
- Print #3 , "PWM=0 - 65535"
- Print #3 , "PWM=" ; Lcd_pwm
- Elseif Bufor = "AT=SETLCD" Then
- Waitms 20
- Input #3 , Lcd_pwm
- Waitms 10
- Rx_pwm = Lcd_pwm
- Tcf0_ccb = Lcd_pwm
- Clear Serialin2
- Elseif Bufor = "AT=ALLVCC" Then
- Waitms 20
- Print
- Elseif Bufor = "AT=TEMP" Then
- ' Appendtofile( "log1.txt" , Text)
- Elseif Bufor = "AT=SAFEON" Then
- Elseif Bufor = "AT=SAFEOFF" Then
- Elseif Bufor = "AT=SETI" Then
- Waitms 20
- Input #3 , Rx_vi
- Waitms 10
- Prad = Rx_vi
- If Prad > 0 And Prad < 4095 Then
- I_dac = Prad * Idac
- Txt = Fusing(i_dac , "#.##")
- Lcd_text Txt , 162 , 45 , 3 , Yellow , Black , 1
- Call Set_prad
- End If
- Clear Serialin2
- Elseif Bufor = "AT=SETV" Then
- Waitms 20
- Input #3 , Rx_vi
- Waitms 10
- Napiecie = Rx_vi
- If Napiecie > 0 And Napiecie < 4095 Then
- V_dac = Napiecie * Vdac
- Txt = Fusing(v_dac , "##.##")
- Lcd_text Txt + " " , 12 , 45 , 3 , Yellow , Black , 1
- Call Set_napiecie
- End If
- Clear Serialin2
- Elseif Bufor = "AT=ZAPISZVI" Then
- Elseif Bufor = "AT=TIMERON" Then
- Elseif Bufor = "AT=TIMEROFF" Then
- Elseif Bufor = "AT=SETTIMER" Then
- Elseif Bufor = "AT=SAVE-LOG" Then
- Waitms 20
- Call Logi_systemowe
- Clear Serialin2
- Call Buzerek
- Elseif Bufor = "AT=DANEPC" Then
- Waitms 20
- Call Dane_komputer
- Clear Serialin2
- Call Buzerek
- Else
- Lcd_text "RX=err " , 8 , 273 , 2 , Yellow , Black , 1
- Print #3 , "Comand Err"
- Clear Serialin2
- End If
- ' Lcd_text "RX= " , 8 , 273 , 2 , Yellow , Black , 1
- Clear Serialin2
- Call Buzerek
- Close #3
- Return
Bardzo bym prosił o choćby jakiś sprawdzony przykład komunikacji dwustronnej nextion<>cpu.
Dodam że skorzystałem nawet ze sztucznej mądrości to tylko namieszła mi w głowie, aczkolwiek pomogła napisać procedury do środowiska VB.NET, ale w bascomie to już nie za bardzo.