Ответ: вот мой модуль инициализации UART0 для MSP430F14x, может где-то и есть ошибки, но связь работает прямо сейчас :)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено rezident 09 января 2004 г. 18:48
В ответ на: Подскажите про MSP430F147 - ну не понимаю.... отправлено Vladimir Ljaschko 09 января 2004 г. 15:13

//----------------------------------- Инициализация приемопередатчика UART0 для MSP430F14x
__task void UART0Init(unsigned long Rate, char NumBit, char Parity, char StopBit)
{
P3SEL |= BIT4+BIT5; // P3.4 и P3.5 как TXD и RXD
P3DIR |= BIT4; // P3.4 как выход для TXD
U0CTL = SWRST; // Установим бит программного сброса и очистим остальные
if (NumBit == 8) U0CTL |= CHAR; // установка 7 или 8 битного режима
if (Parity != 'n') // проверка и установка режима четности
{ U0CTL |= PENA;
if (Parity == 'e') U0CTL |= PEV; // четность
}
if (StopBit != 1) U0CTL |= SPB; // установка количества стоповых битов
U0TCTL = SSEL0 + SSEL1; // U0CLK = SMCLK
U0BR1 = (Freq.SMClk / Rate) >> 8; // установка старшего байта предделителя BITCLK
U0BR0 = (Freq.SMClk / Rate) % 256; // установка младшего предделителя BITCLK
U0MCTL = 00; // установка регистра модуляции
U0CTL &=~ SWRST; // очистим бит программного сброса
U0RCTL = URXEIE; // прерывание для неверно принятых символов разрешено
ME1 |= UTXE0 + URXE0; // разрешаем работу модуля передатчика и приемника UART0
IE1 |= URXIE0 + UTXIE0; // разрешаем прерывания от передатчика и приемника UART0
}

Частота Freq.SMClk у меня глобальная переменная и поэтому в параметрах процедуры не передается.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru