реклама на сайте
подробности

 
 
> Помогите начинающему с UART в P89C51, Помогите начинающему с UART в P89C51
shamray
сообщение Sep 6 2005, 15:08
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 31-08-05
Из: Украина, Одесса
Пользователь №: 8 105



Судьба заставила перейти на 51 ядро. Надо организовать прием и передачу данных по UART-у. С передачей все вроде нормально. А вот с приемом - несрослось. Не вызываетсяя прерывание по приему. Вот код.

Код
void UartInit(void)
{
    TMOD= 0x20;           /* Set M1 for 8-bit autoreload timer */
    TH1 = 0xFD;      /* Set autoreload value for timer 1 */
    TL1 = 0xFD;      /* 9600 baud with 11.0592 MHz xtal */
    TCON_bit.TR1 = 1;    /* Start timer 1 */
    SCON_bit.TI=0;
    SCON_bit.RI=0;
IEN0_bit.ES=1;  //enable RX&TX interupt
IEN0_bit.EA=1;
}

void UARTWriteChar(u08 txData)
{
SBUF=txData;
while(!SCON_bit.TI);
SCON_bit.TI=0;
}

#pragma vector=RI_int
__interrupt void UARTRX( void )
{
if(SCON_bit.RI)              //сюда никогда не прподаем :(
{
SCON_bit.RI=0;
LEDBlink();
}
}

void LEDBlink(void)
{
P1=P1^0x1;
}

int main( void )
{
init();
for(;;);
}


Может чего-то недонастроил?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th June 2025 - 13:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01343 секунд с 7
ELECTRONIX ©2004-2016