Câu trả lời này liệt kê 4 lựa chọn cơ bản:
HardwareSerial
, luôn luôn là tốt nhất. Đơn giản chỉ cần sử dụng Serial
biến được xác định trước . Trên một số Arduinos, có cổng HardwareSerial thêm, gọi Serial1
, Serial2
vv Các Nano chỉ có Serial
.
AltSoftSerial
, tốt nhất của các thư viện nối tiếp phần mềm. Chỉ cho phép một phiên bản và nó phải được sử dụng trên một trong các chân Chụp đầu vào (chân 8 & 9 cho Nano).
Của tôi NeoSWSerial
là tốt nhất tiếp theo. Nó hoạt động trên bất kỳ hai chân, nhưng chỉ ở tốc độ baud 9600, 19200 và 38400.
SoftwareSerial
là sự lựa chọn tồi tệ nhất. Nó hoạt động trên bất kỳ hai chân, nhưng nó rất không hiệu quả. Nó vô hiệu hóa các ngắt trong toàn bộ thời gian mà một ký tự được gửi HOẶC nhận được và nó không thể thực hiện cả hai cùng một lúc (không giống như tất cả các lựa chọn nối tiếp khác). Điều này có thể can thiệp vào các phần khác trong bản phác thảo của bạn, thông tin liên lạc thiết bị khác hoặc với các thư viện.
Nếu bạn có thể sử dụng tốc độ truyền chậm hơn, bạn có thể tiếp tục in gỡ lỗi Serial
và sử dụng AltSoftSerial
hoặc NeoSWSerial
cho thiết bị của mình.
Nhưng nếu bạn phải sử dụng 115200, sự lựa chọn đáng tin cậy duy nhất là Serial
. Mặc dù AltSoftSerial
và SoftwareSerial
cho phép tốc độ truyền đó, họ có thể không gửi / nhận dữ liệu chính xác.
Trong trường hợp đó, tôi sẽ đề nghị sử dụng Serial
cho thiết bị 115200. Trừ khi bạn đang sử dụng ISP, bạn sẽ phải ngắt kết nối thiết bị để tải lên bản phác thảo mới qua USB.
Sau đó sử dụng AltSoftSerial
hoặc NeoSWSerial
cho các báo cáo gỡ lỗi của bạn. Bạn sẽ cần một bộ chuyển đổi nối tiếp USB (hay còn gọi là FTDI) trên các chân được chọn để kết nối với PC. Các Serial Monitor
hoặc khác chương trình giả lập thiết bị đầu cuối sẽ đọc từ cổng USB COM.
key=getKey();
GSM (sử dụng pin 2 & 3 Arduino Uno) thì không nhận được SMS. Làm ơn giúp tôi với.