Відповіді:
Ця відповідь все ще правильна, і більш докладно пояснює характер змін, але більшість користувачів поточного Raspbian слід просто запустити
sudo raspi-config
Select,Interfacing Options / Serial
а потім вказати, чи потрібно послідовна консоль (можливо, ні), то якщо ви хочете, щоб апаратне забезпечення послідовного порту було увімкнено (можливо так). Потім використовуйте/dev/serial0
будь-який код, який має доступ до послідовного порту.
BCM2837 на Raspberry Pi3, Pi3B +, Pi3A +, PiZeroW має 2 UART (як і попередники), однак для підтримки функціональності Bluetooth повнофункціональний PL011 UART був переміщений із штифтів заголовка до мікросхеми Bluetooth, а міні-UART став доступним на заголовки шпильками 8 та 10.
(SOC на Pi4 має додаткові UART, але такі ж 2 UART, як BCM2837, використовуються для серійних за замовчуванням на штифтах 8 та 10 та Bluetooth.)
Це має ряд наслідків для користувачів послідовного інтерфейсу.
/dev/ttyAMA0
Раніше використовуваний для доступу до UART в даний час підключається до Bluetooth.
Тепер miniUART доступний на /dev/ttyS0
.
В останній версії програмного забезпечення операційної системи є , /dev/serial0
який вибирає відповідний пристрій , так що ви можете замінити /dev/ttyAMA0
з /dev/serial0
і використовувати той же програмне забезпечення на PI3 і більш ранніх моделей.
На жаль, існує ряд інших наслідків: -
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.
Немає підтримки паритету і пропускна здатність обмежена, але остання не повинна впливати на більшість застосувань.
Існує одна вбивча функція "Боудрат, похідний від системних годин", яка робить miniUART марним, оскільки цей годинник може динамічно змінюватися, наприклад, якщо система переходить у зменшену потужність або в режим низької потужності.
Змінення /boot/config.txt
усуває цю залежність, додавши наступний рядок наприкінці: -
core_freq=250
Це вирішує проблему і, мабуть, мало впливає. SPI clock frequency
І ARM Timer
також залежить від внутрішнього годинника.
З якоїсь химерної причини за замовчуванням для Pi3, використовуючи останнє ядро 4.4.9, є ВИМКНЕННЯ UART. Щоб включити її потрібно змінити
enable_uart=1
в/boot/config.txt
. (Це також виправляється,core_freq
тому це більше не потрібно.)
Нарешті, якщо ви не користуєтесь Bluetooth (або не вимагаєте використання), можна поміняти порти назад у Дереві пристроїв. Існує pi3-miniuart-bt
і pi3-disable-bt
модуль , які описані в /boot/overlays/README
.
нарешті, це отримало роботу для мого pi3 (os: debian jessie)
будь ласка уважно виконайте ці 6 кроків .
Крок 1 - Встановіть Raspbian Jessie на SD-карту і завантажте Pi при підключенні до мережі Вхід через термінал або робочий стіл та оболонку. Налаштуйте систему за допомогою:
sudo raspi-config
Розгорніть файлову систему та увімкніть послідовне використання на розширеній сторінці, вихід та перезавантаження.
Крок 2 - це не буде необхідним, якщо у вас є новий реліз jessie Оновіть систему за допомогою:
sudo apt-get update
sudo apt-get upgrade
Крок 3 - Налаштування дерева пристрою, як показано нижче:
Додайте дерево пристрою до /boot/config.txt, щоб відключити Raspberry Pi 3 Bluetooth.
sudo nano /boot/config.txt
Додайте в кінці файлу
* якщо ви хочете змінити blutooth на порт miniuart (погано)
dtoverlay=pi3-miniuart-bt
* якщо ви хочете вимкнути blutooth (добре)
dtoverlay=pi3-disable-bt
Вийдіть із редактора, зберігаючи зміни.
Крок 4 - перезавантажте пі
sudo reboot
крок 5 -
а) відключити редагування файлу послідовної консолі за допомогою
sudo nano /boot/cmdline.txt
видалити фазу слів " console=serial0,115200
" або " console=ttyAMA0,115200
"
Вийдіть і збережіть свої зміни
б) увімкнути редагування файлу за допомогою послідовної консолі
sudo nano /boot/cmdline.txt
Змініть файл на таке:
dwc_otg.lpm_enable=0 console=tty1 console=serial0(or ttyAMA0),115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
Вийдіть і збережіть свої зміни
Крок 6 - перезавантажте пі
sudo reboot
----------------- ось і все, веселось ---------------------------- ---
Відповідь Насера правильна, але трохи витончена, якщо ви просто прошивали останню расьбію. Все, що мені потрібно було зробити, - це просто додати наступний рядок до мого config.txt (наприклад, з Windows, де ви підключаєте SD-карту до розділу fat32):
dtoverlay=pi3-disable-bt
Потім підключіть його, і пі буде безпосередньо друкувати речі на штифтах консолі.
9600
. Так що це має спрацювати, якщо я встановити,core_freq=250
а потім налаштувати свою швидкість передачі в сценарій ma python? Крім того, було б чудово, якби ви подивилися на: raspberrypi.stackexchange.com/questions/47379/… Дякую!