Apakah ada beberapa kode yang dapat saya gunakan untuk mengetahui kecepatan port serial yang dipilih?
serial
arduino-mega
Hayden Thring
sumber
sumber
Jawaban:
Tidak ada cara tingkat atas, mudah digunakan. Maaf. Mungkin lebih mudah untuk hanya menyimpan baud rate yang Anda pilih dalam variabel ketika Anda mengatur port serial.
Pokoknya, Apa yang dapat Anda coba lakukan untuk UART perangkat keras berbasis AVR adalah membatalkan apa yang harus
Serial.begin
dilakukan untuk mengatur kecepatan baud tertentu, tetapi sedikit merepotkan. Ini adalah kode untuk mengatur baud rate:Anda dapat menemukan hasil ini dengan membaca register UCSRA, UBRRH, dan UBRRL yang tepat. Pada uno itu adalah nama register yang benar, pada mega UCSR0A-nya, UBRR0H, UBRR0L untuk Serial, UCRS1A ... untuk serial1 dan seterusnya. Papan non-avr (dan
Serial
leonardo) akan sangat berbeda.Akan ada satu negara untuk tiga register pada port serial perangkat keras AVR untuk papan tertentu (dan frekuensi papan itu) pada setiap baud rate. Anda dapat mencoba dan membuat persamaan untuk mengeluarkan baud rate asli, tapi saya sarankan hanya membandingkan nilai langsung dengan semacam pencarian karena kesalahan pembulatan aritmatika integer akan membuatnya berantakan besar.
Sebagai contoh, pada mega UBBR0H, UBBR0L, dan UCSR0A saya adalah 0, 207, 2 pada 9600 baud, tetapi mereka adalah 0, 51, 2 pada 38400 baud dan 0, 16, 0 pada 57600 baud.
sumber