Câu trả lời:
Câu trả lời này vẫn đúng và giải thích chi tiết hơn về bản chất của các thay đổi, nhưng hầu hết người dùng Raspbian hiện tại chỉ nên chạy
sudo raspi-config
ChọnInterfacing Options / Serial
sau đó chỉ định nếu bạn muốn có bảng điều khiển Nối tiếp (có thể không) sau đó nếu bạn muốn bật phần cứng Cổng nối tiếp (có thể Đúng). Sau đó sử dụng/dev/serial0
trong bất kỳ mã nào truy cập Cổng nối tiếp.
BCM2837 trên Raspberry Pi3, Pi3B +, Pi3A +, PiZeroW có 2 UART (như các phiên bản trước của nó), tuy nhiên để hỗ trợ chức năng Bluetooth, U011 PL011 đầy đủ tính năng đã được chuyển từ chân tiêu đề sang chip Bluetooth và UART mini chân tiêu đề 8 & 10.
(SOC trên Pi4 có thêm UART, nhưng 2 UART tương tự như BCM2837 được sử dụng cho nối tiếp mặc định trên chân 8 & 10 và Bluetooth.)
Điều này có một số hậu quả cho người dùng giao diện nối tiếp.
Các /dev/ttyAMA0
trước đây sử dụng để truy cập các UART nay kết nối với Bluetooth.
Các miniUART hiện có sẵn trên /dev/ttyS0
.
Trong phần mềm hệ điều hành mới nhất có một /dev/serial0
mà lựa chọn thiết bị phù hợp để bạn có thể thay thế /dev/ttyAMA0
với /dev/serial0
và sử dụng phần mềm tương tự trên Pi3 và các mô hình trước đó.
Thật không may, có một số hậu quả khác: -
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.
Không có hỗ trợ cho tính chẵn lẻ và thông lượng bị hạn chế, nhưng điều này không ảnh hưởng đến hầu hết các mục đích sử dụng.
Có một tính năng sát thủ "Baudrate có nguồn gốc từ đồng hồ hệ thống" khiến cho miniUART trở nên vô dụng vì đồng hồ này có thể thay đổi linh hoạt, ví dụ nếu hệ thống chuyển sang chế độ giảm năng lượng hoặc ở chế độ năng lượng thấp.
Sửa đổi /boot/config.txt
loại bỏ sự phụ thuộc này bằng cách thêm dòng sau vào cuối: -
core_freq=250
Điều này khắc phục vấn đề và dường như có ít tác động. Các SPI clock frequency
và ARM Timer
cũng phụ thuộc vào đồng hồ hệ thống.
Đối với một số lý do kỳ lạ, mặc định cho Pi3 sử dụng kernel 4.4.9 mới nhất là DISABLE UART. Để kích hoạt nó, bạn cần phải thay đổi
enable_uart=1
trong/boot/config.txt
. (Điều này cũng sửa lỗicore_freq
vì vậy điều này không còn cần thiết nữa.)
Cuối cùng, nếu bạn không sử dụng Bluetooth (hoặc có những cách sử dụng không mong muốn), có thể trao đổi các cổng trở lại trong Cây thiết bị. Có một pi3-miniuart-bt
và pi3-disable-bt
mô-đun được mô tả trong /boot/overlays/README
.
cuối cùng điều này cũng có tác dụng với pi3 của tôi (os: debian jessie)
hãy làm theo 6 bước cẩn thận
Bước 1 - Cài đặt Raspbian Jessie vào thẻ SD và khởi động Pi khi được kết nối với mạng Đăng nhập qua thiết bị đầu cuối hoặc máy tính để bàn và vỏ Cấu hình hệ thống với:
sudo raspi-config
Mở rộng hệ thống tập tin và kích hoạt nối tiếp trên trang nâng cao, thoát và khởi động lại.
Bước 2 - điều này sẽ không cần thiết nếu bạn có bản phát hành mới của jessie Cập nhật hệ thống với:
sudo apt-get update
sudo apt-get upgrade
Bước 3 - Cài đặt cây thiết bị như dưới đây:
Thêm cây thiết bị vào /boot/config.txt để tắt bluetooth Raspberry Pi 3.
sudo nano /boot/config.txt
Thêm vào cuối tập tin
* nếu bạn muốn thay đổi blutooth thành cổng miniuart (xấu)
dtoverlay=pi3-miniuart-bt
* nếu bạn muốn tắt blutooth (tốt)
dtoverlay=pi3-disable-bt
Thoát khỏi trình chỉnh sửa lưu các thay đổi của bạn.
Bước 4 - khởi động lại pi
sudo reboot
bước 5 -
a) để vô hiệu hóa Bảng điều khiển nối tiếp chỉnh sửa tệp bằng cách sử dụng
sudo nano /boot/cmdline.txt
xóa pha từ " console=serial0,115200
" hoặc " console=ttyAMA0,115200
"
Thoát và lưu các thay đổi của bạn
b) để Kích hoạt Bảng điều khiển nối tiếp chỉnh sửa tệp bằng cách sử dụng
sudo nano /boot/cmdline.txt
Thay đổi tệp thành như sau:
dwc_otg.lpm_enable=0 console=tty1 console=serial0(or ttyAMA0),115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Thoát và lưu các thay đổi của bạn
Bước 6 - khởi động lại pi
sudo reboot
----------------- đó là tất cả, vui chơi ---------------------------- ---
Câu trả lời của Naseer là đúng nhưng hơi phức tạp nếu bạn chỉ chớp nhoáng những người mới nhất. Tất cả những gì tôi cần làm chỉ là thêm dòng sau vào config.txt của tôi (ví dụ: cửa sổ nơi bạn cắm thẻ SD trên phân vùng fat32):
dtoverlay=pi3-disable-bt
Sau đó cắm nó vào, và pi sẽ trực tiếp in các thứ trên các chân của bàn điều khiển.
9600
. Vì vậy, nó sẽ hoạt động nếu tôi thiết lậpcore_freq=250
và sau đó cấu hình tốc độ baud của tôi trong kịch bản ma python? Ngoài ra, sẽ rất tuyệt nếu bạn có thể xem tại: raspberrypi.stackexchange.com/questions/47379/ khăn Cảm ơn bạn!