Перейти к содержанию
    

Прием данных

Есть ли у кого нибудь пример где подробно описан прием данных через ком порт(UsART)???

а то собираюсь сделать,хотелось бы пример посмотреть.

Работаю с AT91Sam7s-ek

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли у кого нибудь пример где подробно описан прием данных через ком порт(UsART)???

а то собираюсь сделать,хотелось бы пример посмотреть.

Работаю с AT91Sam7s-ek

 

 

Посмотрите тут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть ли у кого нибудь пример где подробно описан прием данных через ком порт(UsART)???

а то собираюсь сделать,хотелось бы пример посмотреть.

Работаю с AT91Sam7s-ek

 

И что, неужели вот тут ничего нету?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кстати

А как вообще сделать красиво без отключения прерывания?

Пока у меня сделано так

 

1. путчар

а) нет передачи (аппаратный флаг) - в THR

б) есть передача - в буфер

 

в прерывании

 

а) Есть в буфере еще что-то - в THR

б) нет - ну так и нет

 

вроде работает. Но смущают такие моменты граничные, например, когда проверили флаг наличия передачи, тут нас прервали, ушли в прерывание, там пусто, передачи нет, вернулись и положили все в буфер. Патовая ситуация? Передача не начнется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чем не устраивает вариант всегда класть в буфер и разрешать прерывание? А с THR пусть уж оно и разбирается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А чем не устраивает вариант всегда класть в буфер и разрешать прерывание? А с THR пусть уж оно и разбирается.

так ведь THRE возникает в момент окончания передачи байта. Если просто складывать в буфер и разрешить прерывание, оно, родимое, так и не произойдет - никто не записал в THR и, соответственно, еще ничего не передалось

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так ведь THRE возникает в момент окончания передачи байта.

Нет, прерывание устанавливается просто по факту отсутствия данных в THR.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет, прерывание устанавливается просто по факту отсутствия данных в THR.

ок, попробую

а выключать прерывание, соответственно, в нем самом по факту отсутствия данных в буфере..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ком порт(UsART

так ком-порт или USART?

если ком-порт,то

man 3 read

SYNOPSIS

#include <unistd.h>

 

ssize_t read(int fd, void *buf, size_t count);

 

DESCRIPTION

read() attempts to read up to count bytes from file descriptor fd into the buffer starting at buf.

 

а если для USART'а, то простите мне за риск повергания в коллапс вселенной за парадокс, но пример работы с USART находится по адресу http://www.atmel.com/tools/AT91SAMSOFTWAREPACKAGE.aspx

2-й уровень настойчивости - https://www.google.com.ua/#q=atmel+at91sam7...pplication+note

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...