Шаги для чтения данных из порта микроконтроллера ARM - PullRequest
0 голосов
/ 28 ноября 2009

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

1 Ответ

2 голосов
/ 30 ноября 2009

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

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

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

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

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

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

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

...