Шаги по считыванию данных с порта микроконтроллера ARM

StackOverflow https://stackoverflow.com/questions/1811912

Вопрос

У меня возникли проблемы с чтением последовательных данных с микроконтроллера ARM LPC2378.Должен ли я использовать UART или можно использовать любой порт GPIO??есть ли у кого-нибудь для этого c-код??

Это было полезно?

Решение

Технически возможно использовать порт GPIO, но тогда ваше программное обеспечение отвечает за синхронизацию битов, кадрирование, проверку ошибок и т.д.Это часто называют "бит-стук" поскольку ваш код должен выполнять каждый бит, и поэтому он требует больших затрат процессора.Для более низких скоростей передачи данных вы могли бы запустить его из прерывания по таймеру.

Использовать UART намного проще — UART выполняет тяжелую работу по синхронизации битов, кадрированию, проверке ошибок и т.д.

Согласно технический паспорт LPC2378, микроконтроллер имеет 4 UARTs.Таким образом, использование UART - это правильный путь.На какой PIN-код поступают ваши серийные данные?Последовательные данные должны быть подключены к контакту, который может подключаться к одному из 4 интерфейсов UART.Вам нужно будет установить некоторые регистры на микроконтроллере, чтобы настроить его для использования UART:

  • Включите UART и его настройки (там много настроек)
  • Установите, какой pin-код является входом для UART (возможно)
  • Некоторые другие настройки pin-кода

Сначала вы можете попробовать опросить UART — прочитать его флаг "Доступен RX байт" до тех пор, пока он не сообщит "доступен байт", затем прочитать байт из регистра полученных байтов.Также ознакомьтесь с регистром флагов ошибок RX, чтобы узнать, есть ли какие-либо ошибки.

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

Такого рода вещи требуют некоторого времени для чтения в руководство пользователя и спецификация.Наслаждайтесь!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top