[an error occurred while processing this directive]
|
Всем привет. Я слабовато разбираюсь в микроконтроллерах, но срочно надо осуществить "общение через последовательный порт".
Я пишу на C251 в Keil uVision. Объявляю функцию:
void serial_isr (void) interrupt 4
{
}
Инициализирую в main () порт:
EA = 1;
EX0 = 1; // мне еще нужно внешнее прерывание INT0#
SCON = 0x50;
TMOD |= 0x20;
TH1 = 0xF4; // частота 2400
TR1 = 1;
ES = 1; // также разрешаю прерывание последовательного порта
Так вот пишу в Serial Port с помощью printf и не фига не получается. По-окончании прога вываливается в дизассемблер. Если флаг ES не использовать (то бишь отключить прерывание) и добавить строку TI = 1, то printf выполняет все как надо, если заменить printf просто на SBUF = v - тоже не работает. В чем дело? Помогите, пожалуйста, как же настроить последовательный порт в C251? Мне необходимо принимать данные и отправлять.
Спасибо.
E-mail: info@telesys.ru