Jawaban:
Jawaban ini masih benar, dan menjelaskan secara lebih rinci sifat dari perubahan tersebut, tetapi sebagian besar pengguna Raspbian saat ini hanya harus menjalankan
sudo raspi-config
PilihInterfacing Options / Serial
lalu tentukan jika Anda ingin konsol Serial (mungkin tidak) kemudian jika Anda ingin perangkat keras Port Serial diaktifkan (mungkin Iya). Kemudian gunakan/dev/serial0
dalam kode apa pun yang mengakses Port Serial.
BCM2837 pada Raspberry Pi3, Pi3B +, Pi3A +, PiZeroW memiliki 2 UART (seperti pendahulunya), namun untuk mendukung fungsionalitas Bluetooth, UART PL011 berfitur lengkap dipindahkan dari pin header ke chip Bluetooth dan mini UART tersedia di pin header 8 & 10.
(SOC pada Pi4 memiliki UART tambahan, tetapi 2 UART yang sama dengan BCM2837 digunakan untuk serial default pada pin 8 & 10 dan Bluetooth.)
Ini memiliki sejumlah konsekuensi bagi pengguna antarmuka serial.
Yang /dev/ttyAMA0
sebelumnya digunakan untuk mengakses UART sekarang terhubung ke Bluetooth.
MiniUART sekarang tersedia di /dev/ttyS0
.
Dalam perangkat lunak sistem operasi terbaru ada /dev/serial0
yang memilih perangkat yang sesuai sehingga Anda dapat mengganti /dev/ttyAMA0
dengan /dev/serial0
dan menggunakan perangkat lunak yang sama pada Pi3 dan model sebelumnya.
Sayangnya ada sejumlah konsekuensi lain: -
The mini UART is a secondary low throughput UART
intended to be used as a console.
The mini Uart has the following features:
• 7 or 8 bit operation.
• 1 start and 1 stop bit.
• No parities.
• Break generation.
• 8 symbols deep FIFOs for receive and transmit.
• SW controlled RTS, SW readable CTS.
• Auto flow control with programmable FIFO level.
• 16550 like registers.
• Baudrate derived from system clock.
Tidak ada dukungan untuk paritas dan throughput terbatas, tetapi yang terakhir seharusnya tidak mempengaruhi sebagian besar penggunaan.
Ada satu fitur mematikan "Baudrate diturunkan dari jam sistem" yang membuat miniUART tidak berguna karena jam ini dapat berubah secara dinamis misalnya jika sistem beralih ke daya yang dikurangi atau dalam mode daya rendah.
Mengubah /boot/config.txt
penghapusan ini dengan menambahkan baris berikut di akhir: -
core_freq=250
Ini memperbaiki masalah dan tampaknya berdampak kecil. The SPI clock frequency
dan ARM Timer
juga tergantung pada jam sistem.
Untuk beberapa alasan aneh, default untuk Pi3 menggunakan kernel 4.4.9 terbaru adalah untuk DISABLE UART. Untuk mengaktifkannya Anda perlu mengubah
enable_uart=1
di/boot/config.txt
. (Ini juga memperbaikicore_freq
sehingga ini tidak lagi diperlukan.)
Terakhir, jika Anda tidak menggunakan Bluetooth (atau menggunakan kegunaan yang tidak menuntut), dimungkinkan untuk menukar port kembali di Device Tree. Ada a pi3-miniuart-bt
dan pi3-disable-bt
modul yang dijelaskan dalam /boot/overlays/README
.
akhirnya ini berhasil untuk pi3 saya (os: debian jessie)
ikuti 6 langkah ini dengan hati-hati.
Langkah 1 - Instal Raspbian Jessie ke kartu SD dan boot Pi ketika terhubung ke jaringan Login melalui terminal atau desktop dan shell Konfigurasikan sistem dengan:
sudo raspi-config
Perluas filesystem dan aktifkan serial pada halaman lanjutan, keluar dan reboot.
Langkah 2 -ini tidak perlu jika Anda memiliki rilis baru jessie Perbarui sistem dengan:
sudo apt-get update
sudo apt-get upgrade
Langkah 3 - Pengaturan Device Tree seperti di bawah ini:
Tambahkan bagan perangkat ke /boot/config.txt untuk menonaktifkan bluetooth Raspberry Pi 3.
sudo nano /boot/config.txt
Tambahkan di akhir file
* jika Anda ingin mengubah port blutooth ke miniuart (buruk)
dtoverlay=pi3-miniuart-bt
* jika Anda ingin menonaktifkan blutooth (bagus)
dtoverlay=pi3-disable-bt
Keluar dari editor dan simpan perubahan Anda.
Langkah 4 - reboot pi
sudo reboot
langkah 5 -
a) untuk menonaktifkan Serial Console, edit file menggunakan
sudo nano /boot/cmdline.txt
hapus fase kata " console=serial0,115200
" atau " console=ttyAMA0,115200
"
Keluar dan simpan perubahan Anda
b) Mengaktifkan Konsol Serial, mengedit file menggunakan
sudo nano /boot/cmdline.txt
Ubah file menjadi yang berikut:
dwc_otg.lpm_enable=0 console=tty1 console=serial0(or ttyAMA0),115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Keluar dan simpan perubahan Anda
Langkah 6 - reboot pi
sudo reboot
----------------- itu saja, bersenang-senang ---------------------------- ---
Jawaban Naseer benar tetapi sedikit rumit jika Anda baru saja mem-flash rasbian terbaru. Yang perlu saya lakukan, hanya menambahkan baris berikut ke config.txt saya (dari misalnya windows tempat Anda mencolokkan kartu SD pada partisi fat32):
dtoverlay=pi3-disable-bt
Kemudian colokkan, dan pi akan langsung mencetak barang pada pin konsol.
9600
. Jadi itu harus bekerja jika saya mengaturcore_freq=250
dan kemudian mengkonfigurasi baud rate saya di skrip ma python? Juga, akan lebih bagus jika Anda bisa melihat di: raspberrypi.stackexchange.com/questions/47379/… Terima kasih!