Truyền Các Số Kiểu Long, Int, Float Trong Giao Tiếp Serial (UART)
Có thể bạn quan tâm
Đây là thư viện dành cho giao tiếp Serial giữa 2 board arduino dùng để truyền nhận tất cả các kiểu số và kí tự
Công việc của nó cũng khá đơn giản!
Để truyền: Ví dụ để truyền số 12345 kiểu int, như ta đã biết trên arduino kiểu int có cỡ là 2 byte, ta sẽ tách 2 byte lưu trữ của biến này thành từng byte rồi xuất ra đường truyền.
Để nhận: Ta sẽ làm ngược lại là ghép 2 byte đã nhận về một số kiểu int.
Kĩ thuật này đã được mình ứng dụng trong việc lưu trữ các số (lớn hơn 255) vào EEPROM tại bài viết này:
http://arduino.vn/tutorial/1370-huong-dan-su-dung-ic-eeprom-24cxx-cua-atmel-va-thu-vien
Để hiểu hơn về phương pháp tách/ghép, bạn hãy xem mã nguồn của thư viện này nhé.
Giới thiệu thư viện
Hiện tại thư viện có các chức truyền nhận các số kiểu:
Kiểu double: từ 2.2250738585072014 E – 308 đến 1.7976931348623158 E + 308.
void write_double(double value); double read_double();Kiểu float: từ 1.175494351 E – 38 đến 3.402823466 E + 38
void write_float(float value); float read_float();Kiểu int8_t: từ -128 đến 127
void write_int8_t(int8_t value); int8_t read_int8_t();Kiểu uint8_t (là kiểu byte): từ 0 đến 255.
void write_uint8_t(uint8_t value); uint8_t read_uint8_t();Kiểu int16_t (là kiểu int): từ -32768 đến 32767
void write_int16_t(int16_t value); int16_t read_int16_t();Kiểu uint16_t (giống kiểu unsigned int): từ 0 đến 65536
void write_uint16_t(uint16_t value); uint16_t read_uint16_t();Kiểu uint32_t (giống kiểu unsigned long) :từ 0 đến 4,294,967,295
void write_uint32_t(uint32_t value); uint32_t read_uint32_t();Kiểu int32_t (giống kiểu long):từ -2,147,483,648 đến 2,147,483,647
void write_int32_t(int32_t value); int32_t read_int32_t();Kiểu unsigned char (là kiểu byte): 0 đến 255
void write_char(unsigned char value); unsigned char read_char();Tương ứng 256 kí tự trong bảng mã ASCII, mỗi lần chỉ gửi được 1 kí tự
Gửi một chuỗi kí tự
void write_string(unsigned char value[], uint32_t n ); void read_string(unsigned char *value, uint32_t n);Với n là số lượng kí tự muốn gửi (hoặc nhận)
Gửi một mã dạng kí tự
void send_pass(unsigned char value[], uint32_t n );Rồi sau đó sử dụng hàm này để kiểm tra xem mã có khớp không, nếu đúng thì trả về 1, sai trả về 0.
bool check_pass(unsigned char value[], uint32_t n );Xóa bộ nhớ đệm
void clear_buffer();Từ khóa » Thư Viện Uart Cho Arduino
-
Giao Tiếp UART Giữa 2 Arduino - ĐIỆN TỬ TƯƠNG LAI
-
Truyền Nhận Dữ Liệu Với Giao Tiếp Serial (UART) Trên Arduino - TAPIT
-
Serial - Thư Viện Giao Tiếp Giữa Các Mạch Arduino Dễ Học Nhất
-
Arduino – Truyền Thông Nối Tiếp – Serial - Unicloud Blogs
-
Chia Sẻ Thư Viện Truyền Dữ Liệu Theo Gói Tin Trên Arduino
-
Cách Tạo Cổng UART Serial Port ảo Trên Arduino (Mega/uno/nano ...
-
Send Int, Float, Long... UART Arduino .Thư Viện Truyền Dữ Liệu Kiểu Số ...
-
Giao Tiếp UART Giữa 2 Arduino - Trangwiki
-
Tài Liệu Lập Trình Arduino - DevIOT
-
ESP32 UART - DevIOT
-
ArduinoModbus - Arduino Reference
-
Hướng Dẫn Giao Tiếp UART Phần 2: Truyền Nhiều Byte Dữ Liệu Với ...
-
RF UART Giao Tiếp Arduino, Thu Phát RF UART 433Mhz HC-12 + ...