Двигаемся дальше, сегодняшней целью является UART. Попробуем покидать байты между ПК и малиной.

В прошлый раз не упомянул, но для настройки параметров платы есть специальная тулза. Разобраться в ней не составит труда.

sudo raspi-config

Так к чему же это? Как уже я говорил по дефолту в уарт сыпятся все системные сообщения. В предыдущих версиях Raspbian через конфиг можно было выключить уарт, при этом как устройство он оставался доступным, но отключались системные сообщения. В последних версиях похоже это изменилось. Нужно чтобы уарт был включен в конфиге, а системные сообщения отцепляются командой

systemctl mask serial-getty@ttyAMA0.service

После настройки и перезагрузки убедитесь, что уарт включен, в списке устройств он выглядит как ttyAMA0, но вроде как название может быть и другим.
ttyama0

После этого нужно убедиться что последовательный порт работает. Для этого подсоединяем к компу через USB-UART переходник, скачиваем minicom и запускаем.

minicom -b 9600 -o -D /dev/ttyAMA0

Пуляем байты и видим их на ПК. Все работает шикарно. Теперь попробуем что нибудь написать на Си.

#include <stdio.h>
#include <unistd.h>                
#include <fcntl.h>                     
#include <termios.h>           
 
void main(int argc, char *argv[])
{
        int fp;
 
        fp = open ("/dev/ttyAMA0", O_RDWR | O_NOCTTY | O_NDELAY);
 
        struct termios uart_param;
        tcgetattr(fp, &uart_param);
        uart_param.c_cflag = B9600 | CS8 | CLOCAL | CREAD;
        uart_param.c_iflag = IGNPAR;
        uart_param.c_oflag = 0;
        uart_param.c_lflag = 0;
        tcflush(fp, TCIFLUSH);
        tcsetattr(fp, TCSANOW, &uart_param);
 
        write(fp, "hello", 5);
        close(fp);
}

B9600 — Бодрейт, соответственно, если нужно 115200, то ставим B115200.
CS8 — количество бит.
CLOCAL — без использования линий RTS, CTS
CREAD — включить приемник
IGNPAR — откидывать байты, не прошедшие проверку четности

В общем то и все, в терминал на десктопе прилетят заветные hello. Если нужно читать байты, то делается точно также функцией read.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Свежие записи
Последние комментарии
  • Загрузка...
Архивы
Счетчик
Яндекс.Метрика