во-первых надо вспомнить какие бывают переменные...
байтовые...
строковые...
булевы...
...
Serial.print ("text") ; // передаём в функцию Serial.print () переменную "text".
далее функция Serial.print () переводит переменную "text" в массив байт (74 65 78 74) и передаёт по UART байты (74 65 78 74).
Как имеено это делает библиотека ардуино... я без понятия)) это надо сидеть и разбираться... а это долго и нудно))
mixon46 писал(а):Как такое сделать в cvavr?
Например так:
unsigned char x;
unsigned char bufer[]={"text"};
for (x=0; x<4 ; x++) {
UDR = bufer[x]; // передать байт из bufer
while ( ! (UCSRA & (1<<UDRE) ); // ждём окончания передачи байта
};
или можно так:
unsigned char x;
unsigned char bufer[]={"text|"};
for (x=0; bufer[x] != '|' ; x++) {
UDR = bufer[x]; // передать байт из bufer
while ( ! (UCSRA & (1<<UDRE) ); // ждём окончания передачи байта
};
можно и по другому...
в любом случае cvavr при компиляции автоматом переводит bufer[]={"text"}; в bufer[]={74 65 78 74}; и далее передаёт по UART байты (74 65 78 74).
Так же делают и другие компиляторы и программы...
Добавлено after 8 minutes 14 seconds:Или же хочу принять по типу String stroka = Serial.readString ();
не понятно зачем это надо...
не знаю как в ардуино а в других прогах надо указать функции Serial.readString () массив куда сохранять принятые байты...
типа так:
unsigned char bufer[100]={};
String stroka = Serial.readString (bufer);
Но это не точно)) я без понятия как работает библиотека ардуино... ))