Уважаемые специалисты, кому то удалось от HSI завести UART выше 2400, все перепробовал, на 9600 уже ошибки проскакивают, может что то упускаю? CLK_CKDIVR=0x00; //делитель частоты 1 CLK_ICKCR_bit. HSION = 1; CLK_PCKENR1_bit.PCKEN15 = 1; //Включаем тактирование модуля USART1 PC_DDR &= ~(1 << 2);//PC2 RX USART1 receive (вход) PC_DDR &= ~(1 << 3); //PC3 TX USART1 transmit (выход) USART1_BRR2 = 0x03; //скорость 9600bps USART1_BRR1 = 0x68; USART1_CR2_bit.REN=1; //прием USART1_CR2_bit.TEN=1; //передача USART1_CR2_RIEN=1; //Прерывание по приему __enable_interrupt (); // Разрешаем прерывания. while(!(USART1_SR_bit.TXE)); //Ожидаем освобождения буферного регистра TDR USART1_DR='F'; // Отправляем символ "F".
while (1){} //беск. цикл
}
#pragma vector=USART_R_OR_vector __interrupt void USART1_RXE(void) { USART1_DR=USART1_DR; //Отправляем тоже, что и приняли (эхо) }
|