Truyền Các Số Kiểu Long, Int, Float Trong Giao Tiếp Serial (UART)

Đâ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

Tương ứng 256 kí tự trong bảng mã ASCII, mỗi lần chỉ gửi được 1 kí tự

void write_char(unsigned char value); unsigned char read_char();

Gửi một chuỗi kí tự

Với n là số lượng  kí tự muốn gửi (hoặc nhận)

void write_string(unsigned char value[], uint32_t n ); void read_string(unsigned char *value, uint32_t 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