Правильный способ использования USART на PIC 16 - PullRequest
0 голосов
/ 31 мая 2011

Я пытаюсь получить 1 символ, используя функцию USART на PIC 16.

Оба передатчик и приемник оба PIC 16 с.

Могу ли я проверить, является ли способ вызова функции получения концептуально правильным

char tmp;

CREN = 0;
CREN = 1;

while(!RCIF); 

if(OERR==1)
{
  tmp = RCREG;
  tmp = RCREG;
  CREN=0;
  DelayMs(5);
  CREN=1;
}
else
{
 tmp = RCREG;
}

CREN = 0;

Большое спасибо заранее!

1 Ответ

1 голос
/ 01 июня 2011

Сначала вы должны инициировать UART.

  1. Загрузить в регистр SPBRG количество зависит от вашей бод частота и тактовая частота процессора (проверьте таблицу данных).
  2. Установить бит BRGH в регистре TXSTA в зависимости от желаемой скорости передачи (см. Таблицу данных).
  3. Заданные биты в регистре RCSTA зависят от длины данных и т. Д. (См. Таблицу данных). Включить бит CREN в регистре RCSTA.
  4. Ожидание PIR1.RCIF == 1 бит, который указывает, что буферный приемник заполнен (только один байт).
...