Пн июл 23, 2018 12:48:51
#pragma config FOSC = HSMP // частота тактового генератора
#pragma config PLLCFG = ON
#pragma config PRICLKEN = ON
#pragma config FCMEN = OFF
...
void usart_init(void)
{
UINT_32 tmp;
TRISCbits.TRISC6 = 0; // установить 0 вывод порта А как выход
ANSELCbits.ANSC6 = 1;
tmp = 4915200;
// вычисление частоты USART по формуле SPBRG = Fosc/16 - 1
tmp /= 4;
tmp /= 9600;
tmp--; //не Fosc, а 4xFosc
SPBRG1 = (BYTE)tmp; // устанавливаем частоту USART1
TXSTA1bits.SYNC = 0;// установка асинхронного режима
TXSTA1bits.BRGH = 1;
RCSTA1bits.SPEN = 1;// включить модуль USART1
PIR1bits.RCIF = 0; // очистить буфер приемника
PIE1bits.RCIE = 1; // прерывание от приемника USART разрешено
PIE1bits.TXIE = 0; // прерывание от передатчика USART запрещено
IPR1bits.RCIP = 0; // приоритет прерывания от приемника USART - низкий
IPR1bits.TXIP = 0; // приоритет прерывания от передатчика USART - низкий
TXSTA1bits.TX9 = 0; // 8 разрядная передача
RCSTA1bits.RX9 = 0; // 8 бит принятых данных
RCSTA1bits.CREN = 1; // разрешить прием
TXSTA1bits.TXEN = 1; // разрешить передачу
}
Пн июл 23, 2018 13:52:48
Вт июл 24, 2018 06:08:01
Вт июл 24, 2018 08:46:46