Правильный способ использования USART на PIC 16

Я пытаюсь получить 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;

Спасибо заранее!


person John    schedule 31.05.2011    source источник


Ответы (1)


Вы должны сначала запустить UART.

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