O‘n beshinchi amaliy mashg’ulot mavzusi
Arduino majmualaridagi UART interfeyslari ma’lumotlarni uzatish tezligi
Download 0.82 Mb.
|
15-amaliy mashg\'ulot
- Bu sahifa navigatsiya:
- Arduino majmualaridagi UART interfeyslariga dastur yozish ketma-ketligi
Arduino majmualaridagi UART interfeyslari ma’lumotlarni uzatish tezligiSerial, begin funksiyasi bodlarda ketma-ket interfeys tezligini o‘rnatadi. Bod bir soniyada uzatiladigan bit sonini bildiradi. Agar biz 9600 bodni tanlasak, bir bit 1/9600 = 0.000104 s = 104 mksda uzatiladi. Bu juda yuqori tezlik hisoblanadi. Serial.begin (Baudrate) funksiyasi ketma-ket portni ochadi va ma’lumotlarni ketma-ket uzatish uchun bod tezligini (ma'lumotlar uzatish tezligi) o‘rnatadi. Quyidagi bod tezliklaridan foydalanish mumkin: P 300 1200 4800 9600 14400 19200 28800 38400 57 600 115200 Arduino Pro modulini yoki shunga o‘xshash turdagi modullarni qo‘shganda UART apparat interfeyslari konfiguratsiya quyidagicha sozlanishi mumkin: Serial.begin (9600); Seriall.begin (38400); Serial2.begin (19200); Serial3.begin (4800); Arduino majmualaridagi UART interfeyslariga dastur yozish ketma-ketligiBarcha interfeyslarda nomer mavjud. Birinchi interfeys UART0. Agar belgini chiqarishni istasangiz, unda bu holda serialx.print funksiyasi ishlatiladi, bu erda x UART interfeysi nomeri hisoblanadi. Serial.println ("Hallo hier ist UART 0"); Seriall.println ("Hallo hier ist UART 1") Serial2.println("Hallo hier ist UART 2"); Serial3.println ("Hallo hier ist UART 3") Ketma-ket aloqada, 0(Rx) va 1(Tx) raqamli chiqishlaridan bir vaqtning o‘zida foydalanib bo‘lmaydi. Serial.end() Ketma-ket interfeys bilan ishni yakunlash va chiqishlarni boshqa maqsadlar uchun ishlatish uchun serial.end() funksiyadan foydalanishingiz mumkin. Serial.read() ketma-ket interfeysdan bir baytni o‘qiydi: Serial.read () funksiyasi int x; x = Serial.read (); Serial.availablef) Serial.available() funksiyasi ketma-ketlik buferida belgi mavjud yoki yo‘qligini tekshiradi. Bu funksiya, masalan, buferda hech qanaqa ma'lumot bo‘lmasa, dastur bloklarini o‘tkazish imkonini beradi. Bu funksiya ketma-ketlik interfeysi bilan ishlash uchun juda muhimdir. Quyida ushbu funksiyaning qanday ishlashi ko‘rsatilgan. // Franzis Arduino // Arduino Serial.available Funktion byte eingabe, ausgabe; void setup () { Serial.begin (9600); Serial.println ("Arduino Serial.available Funktion"); Serial.println (); } void loop () { if (Serial.available ()> 0) { eingabe = Serial.read (); Serial.print ("Ich habe folgendes Zeichen empfangen:"); ausgabe = char (eingabe); Serial.println (eingabe); }} Bunda tiplarni o‘zgartirish aks ettirilgan. Agar o‘zgartirish bajarilmasa, ASCII kodi ko‘rsatiladi. Quyidagi misolni bajarib ko‘ring: Serial.printIn (kirish ma'lumotlari, DEC); Serial.print Ushbu funksiya ketma-ketlik buferi tarkibini o‘chiradi. Ketma-ket ma’lumotlar taqsimlangandan keyin buferni tozalash uchun uni qo‘llang. Agar aloqada xatolar ro‘y bersa va ma'lumotlar buzilgan bo‘lsa, ular buferdan o‘chiriladi. Serial.print() Serial.print() funksiyasi ketma-ket uzatish buferidan ma'lumotlarni chiqaradi. Ma’lumotlar Integer, bayt, Char va Float ko‘rinishida bo‘ladi. Format ko‘rsatilmasa, serial.print(x) funksiyasi UART buferidan o‘nli sonini chiqaradi: int b = 79; Serial.print (b); UART buferidan 79 soni chiqadi. Bu serial.print (B, DEC) funksiyasi, DEC formatni bildirib, UART buferidan ASCII satridagi sonni chiqaradi: int b = 79; Serial.print (b, DEC); UART buferidan ASCII satridagi 79 sonni chiqaradi. Bu serial.print (b, HEX) funksiyasi, HEX formatni bildirib, UART buferidan bir sonni oʼn oltilik formatda ASCII satr sifatida chiqaradi: int b = 79; Serial.print (b, HEX); ASCII satridagi " 4F " ni UАRT buferidan chiqaradi. Bu serial.ost formatini koʼrsatuvchi print(B, OST) funksiyasi UART buferidan SEKTАL formatdagi ASCII satri sifatida raqam chiqaradi: int b = 79 ; Serial. print (b,OCT); ASCII satrini " 117 " UАRT buferidan chiqaradi. Bu serial.print (b, BIN) funksiyasi BIN formatini bildirib, UART buferidan bir sonni ASCII satrini binar formatda chiqaradi: int b = 79 ; Serial.print(b, BIN); "1001111" ASCII satrini UАRT buferidan chiqaradi. Bu serial.print (b, BYTE) funksiyasi bayt formatini bildirib, UART buferidan alohida bayt sifatida raqam chiqaradi: int b = 79; Serial.print(b, BАYT); ASCII xarfini "0" UАRT buferidan chiqaradi. Turli formatlarda chiqish misollar koʼrsatilgan. // Franzis Arduino // Arduino Serial.print Funktion int x; void setup() { Serial.begin(9600); Serial.printIn("Arduino Serial.print Funktion"); Serial.println(); } void loop() { Serial.print("NO FORMAT"); Serial.print("NO FORMAT"); Serial.print("\t"); // Print Tab Serial.print("DEC"); // Decimal Serial.print("\t"); Serial.print("HEX"); // Hexadezimal Serial.print("\t"); Serial.print("OCT"); // Octal Serial.print("\t"); Serial .print ("BIN") ; // Binar Serial.print("\t"); Serial.println("BYTE"); // Byte for(x=0; x< 64; x++) { // turli xil formatda chiqarish Serial.print(x); Serial.print(n\t"); Serial.print(x, DEC); Serial.print("\t"); Serial.print(x, HEX); Serial.print("\t"); Serial.print(x, ОСТ); Serial.print("\t"); Serial.print(x, BIN); Serial.print("\t"); Serial.println(x, BYTE); delay(200); // 200 ms uzilish } Serial.println(""); } Serial.println() Bu funksiya ketma-ket portdan maʼlumotlarni chiqaradi va avtomatik ravishda yangi satrga oʼtadi. Serial.write() Serial.write() funksiyasi serial buferidan bayt maʼlumot chiqishini amalga oshiradi: Serial.write(val); Serial.write(str) ; Serial.write (buf,len); Parametrlar qiymati: Val-alohida bayt yuboradi; str-satrlarni baytlarda yuboradi; buf-massivni baytlarda yuboradi; len-massivning uzunligi (bufer oʼlchami). Quyida misol aks ettirilgan. //Franzis Arduino //Arduino Serial.write Funktion byte val = 65; char str[] = "Test"; byte buf[] = { ' H' , ' a' , ' 1 \ ' 1' , ' о' } ; byte len = 3; void setup() { Serial.begin(9600); Serial.println("Arduino Serial.write Serial.println(); } void loop() { Serial.println("ASCII Zeichen"); Serial.write(val); Serial.println(); Serial.println("String 1"); Serial.write(str); Serial.println(); Serial.println("String 2"); Serial.write(buf, len); Serial.println(); while(1); Serial.write (buf,len) funksiyasi 3mga teng len oʼzgaruvchi belgilangan. Bu yoʼl, faqat birinchi uch belgi chiqish boʼladi. Download 0.82 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling