Tüm Yazılım Seri Kütüphaneleri arasındaki fark nedir? Hangisi Arduino Nano uyumludur?


11

Çok sayıda Yazılım Seri Kütüphanesi var, aralarındaki farklar nelerdir? Arduino Nano'mla hangisini kullanabilirim? Arduino Nano'm için 115200 baud hızında bir Donanım Seri Bağlantı Noktası ve bir Yazılım Seri bağlantı noktasına ihtiyacım var.

Arduino Nano'nun hangi pinlerinde yazılım seri kütüphanesini kullanabilirim?


I2C tuş takımı ile neoswserial kullanıyorum, ancak GSM'imi eklediğimde key=getKey();(pin 2 ve 3 Arduino Uno kullanarak) SMS almıyor. Bana yardım et lütfen.
Nguyườn Trường Hải

Yanıtlar:


16

Bu cevap 4 temel seçeneği listeler:

  • HardwareSerial, her zaman en iyisi. Önceden tanımlanmış Serialdeğişkeni kullanmanız yeterlidir . Bazı Arduinos günü, denilen ekstra HardwareSerial portları vardır Serial1, Serial2vb Nano sadece sahiptir Serial.

  • AltSoftSerial, en iyi yazılım seri kütüphaneleri. Yalnızca bir örneğe izin verilir ve Giriş Yakalama pinlerinden birinde (bir Nano için 8 ve 9 pinleri) kullanılması gerekir.

  • Benim NeoSWSerialen iyisi. Herhangi bir iki pim üzerinde çalışır, ancak sadece 9600, 19200 ve 38400 baud hızlarında.

  • SoftwareSerialen kötü seçimdir. Herhangi bir iki pim üzerinde çalışır, ancak çok verimsizdir. Bir karakterin gönderildiği VEYA alındığı süre boyunca kesintileri devre dışı bırakır ve her ikisini aynı anda yapamaz (diğer tüm seri seçimlerin aksine). Bu, çiziminizin diğer bölümlerine, diğer cihaz iletişimine veya kitaplıklara müdahale edebilir.

Daha düşük bir baud hızı kullanabiliyorsanız, hata ayıklama baskılarınızı açık tutabilir Serialve cihazınızdan birini AltSoftSerialveya NeoSWSerialcihazınızı kullanabilirsiniz.

Ancak 115200 kullanmanız gerekiyorsa, tek güvenilir seçimdir Serial. Her ne kadar AltSoftSerialve SoftwareSerialo baud hızı izin gönderemez olmayabilir / doğru veri almak.

Bu durumda, Serial115200 aygıtı için kullanmanızı öneririm . ISS kullanmadığınız sürece, USB üzerinden yeni bir çizim yüklemek için cihazın bağlantısını kesmeniz gerekir.

Sonra hata ayıklama ifadeleriniz için AltSoftSerialveya kullanın NeoSWSerial. Bilgisayara bağlanmak için seçilen pinlerde bir TTL Seri-USB adaptörüne (aka FTDI) ihtiyacınız olacaktır. Serial MonitorVeya diğer terminal emülatörü programı o USB, COM bağlantı noktasından okuyacaktır.


AltSoftSerial performans ve özelliklerde aynı mıdır, sadece NeoICSerial neyin işlevselliğini ekler? Ben tam olarak anlamadım. github.com/SlashDevin/NeoICSerial
William Roy

2
@WilliamRoy, NeoICSerialsadece attachInterruptyöntemi ekler AltSoftSerial. Muhtemelen her bir karakteri kesintiye uğratmanız gerekmez. Bir char hazır olduğunda ve öğesini kullanın AltSoftSerialve arayın . Benzer şekilde, çekirdeğe aynı özelliği ekler . Ancak, tamamen farklı bir sınıftır (ayrıca özelliği vardır). available()read()NeoHWSerialattachInterruptHardwareSerialNeoSWSerialattachInterrupt
slash-dev

-2

Seri yazılım, tüm bitleri sırayla kaydetmek için kayıt olan yerel bir bağlantı noktasından farklı olan bir seri bağlantı noktasını taklit eder ve ana döngüyü çağırmak için bir bayrak ayarlar, bir yazılım serisinde bundan hiçbir şey yoktur. Yazılım seri, tüm bitleri tek tek almalıdır, bu nedenle dijital bir port okumalı, belirli bir süre beklemeli ve dijital pimi tekrar okumalısınız. 10 kez yapmalısınız (1 başlangıç ​​biti, 8 veri biti ve 1 bitiş biti). Zaman çok önemli. Bir yazılım dizisi kullanmak için performans hakkında daha fazla endişelenmeniz gerekir.

RX pimi için bir dijital kesme pimi kullanabilirsiniz, böylece aşağı kenarlıkta (başlangıç ​​biti) "çağrılır" ve alınan 8 bit.


1
Bu bile gelmez girişimi orijinal soruyu cevaplamak için.
Edgar Bonet

1
Evet, bu orijinal arayışa cevap vermeye çalışmaz çünkü Arduino topluluğu kendi Çevresel kodunu bilmiyor.
rodrigo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.