Jump to content

    

UART на Raspberry Pi 4

Получил Pi 4 (до этого был Pi 2). UART не работает.

делаю

raspi-gpio get 0-15
GPIO 14: level=1 fsel=2 alt=5 func=TXD1 pull=NONE
GPIO 15: level=1 fsel=2 alt=5 func=RXD1 pull=UP

потом

pi@raspberrypi:~ $ ls -l /dev/serial*
lrwxrwxrwx 1 root root 5 Jan  6 13:43 /dev/serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 Jan  6 13:43 /dev/serial1 -> ttyAMA0

исходя из этого мой девайс - /dev/ttyAMA0

И вобщем то при инициализации дескриптор открывается uart_fd = open("/dev/ttyAMA0", O_RDWR | O_NOCTTY | O_NDELAY); и я не получаю никаких ошибок. но чтение-запись не работает.

Share this post


Link to post
Share on other sites
1 hour ago, jenya7 said:

чтение-запись не работает.

"Ваша программа не работает!" :)

 

Хоть бы уточнили: ошибки при чтении/записи/ioctl, нет ожидаемого эффекта на пинах, что-то еще...

Share this post


Link to post
Share on other sites
18 hours ago, aaarrr said:

"Ваша программа не работает!" :)

 

Хоть бы уточнили: ошибки при чтении/записи/ioctl, нет ожидаемого эффекта на пинах, что-то еще...

в том то и дело - никаких ошибок

write ( uart_fd ,  "hello " , 5);

не вижу ничего на терминале. старый Pi 2 работал.

 

хотя если копнуть глубже

ssize_t sent = write ( uart_fd ,  "hello " , 5);

sent = 0 - ничего не послалось, вопрос почему.

 

открыл так

uart_fd = open("/dev/serial0", O_RDWR | O_NOCTTY | O_NDELAY);

получаю мусор на терминал. перепробовал все бод рэйты ничего не помогло.

Edited by jenya7

Share this post


Link to post
Share on other sites

вобщем если добавляю

dtoverlay=pi3-miniuart-bt

то UART посылает принимает без проблем. но тогда исчезает блютус. а мне нужно и UART и блютус.

Это невозможно?

Share this post


Link to post
Share on other sites
4 hours ago, jenya7 said:

вобщем если добавляю

dtoverlay=pi3-miniuart-bt

то UART посылает принимает без проблем. но тогда исчезает блютус. а мне нужно и UART и блютус.

Это невозможно?

Да. В документации по RPi всё подробно расписано.

Share this post


Link to post
Share on other sites
9 minutes ago, x893 said:

Да. В документации по RPi всё подробно расписано.

в документации как то размыто. но можно ведь сделать оверлей на другой UART, нет?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this