Tăng kích thước tải trọng trên 32 byte bằng nRF24L01 +


7

Tôi đã cố gắng sửa đổi ví dụ trong trang sau, bằng cách thay thế chuỗi đã cho bằng 56 byte sau khi thực hiện tất cả các thay đổi phù hợp để đọc (), write () và max_payload_size (tăng lên 64 byte), tham số / phương thức payload_size () trong thư viện RF24.

http://shanes.net/another-nrf24l01-sketch-opes-sendreceive/

Vấn đề là người nhận cắt ngắn chuỗi thành 32 ký tự. 32 byte có phải là giới hạn cứng cho tải trọng với radio nrf24l01 + không? Nếu vậy làm thế nào để tôi sửa đổi người nhận trong vấn đề ví dụ trên để nhận toàn bộ chuỗi?

Câu trả lời:


5

Nếu bạn nhìn vào đặc tả hoặc biểu dữ liệu cho nRF24l01 +, bạn sẽ thấy rằng tải trọng 32 byte là mức tối đa mà thiết bị có thể xử lý.

Ví dụ:

thông số kỹ thuật

Nếu bạn cần truyền bất cứ thứ gì lớn hơn 32 byte, bạn sẽ cần phát triển một giao thức phân chia dữ liệu của bạn thành các khối từ 32 byte trở xuống và gửi dữ liệu trong một số gói.

Giao thức thực tế mà bạn thiết kế tùy thuộc vào bạn, nhưng một kỹ thuật đơn giản có thể là sử dụng gói đầu tiên để gửi số lượng gói dữ liệu mong đợi và sau đó chỉ cần gửi các gói đó, mỗi gói có một phần dữ liệu của bạn và lắp lại tại kết thúc nhận.

Bạn có thể cần thiết kế một cái gì đó mạnh mẽ hơn để bạn không bị nhầm lẫn bởi các gói bị mất hoặc dữ liệu xấu. Tải trọng của bạn càng lớn, càng có nhiều khả năng xảy ra lỗi truyền, do đó, có thể nên thử nghiệm với kích thước tải trọng để có được thông lượng tốt nhất cho ứng dụng cụ thể của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.