{
PINSEL0_bit.P0_0 = 0x01; //линию РО.О сделать выходом TXDO UARTO
PINSELO_bit.Р0_1 = 0x01; //линию РОЛ сделать входом RXDO UARTO
U0LCR_bit.DLAB = 1; //разрешить запись в настройки делителя UARTO
UODLL = 14745600/(16*baudrate); // задание мл. байта скорости обмена U0DLM = ((14745600/(16*baudrate)) » 8); // задание ст. байта скорости обмена U0LCR_bit.DLAB = 0; //разрешить обращение к буферам UART0
U0LCR_bit.WLS = 0x03; //длина символа 8 битов
U0LCR_bit.SBS=l; //1 стоповый бит
U0FCR_bit.FCRFE = 1; //разрешить буфер FIFO с уровнем триггера 1 символ
U0FCR_bit.RFR = 1; //сбросить приемный буфер FIFO
U0FCR_bit.TFR = 1; //сбросить передающий буфер FIFO
U0IER_bit.RDAIE = 1; //разрешить прерывание по приему данных в буфер
}
//Функция передачи байта через UART0
void UART0tx_byte(U8 tx_byte)
{
while (U0LSR_bit.THRE == 0); //когда буфер передатчика будет пуст UOTHR = tx_byte; //запись в буфер передачи UART0 (начать передачу)
}
//Функция приема байта через UART0
U8 UART0rx_byte()
{
while (U0LSR_bit.DR==0);
rx_byte = UORBR; //чтение буфера приема UARTO, сброс этим прерывания
return rx_byte;
}
„------------_„---------------------------------------------------------
Файл uart.h
//-----------------------------------------------------------------------:
//Заголовки и определения обслуж модуля UART0
//------------------------------------------------------------------------
tinclude "hardware.h" //подключение специальных заголовков и определений //Объявление функции инициализации модуля UART0 void UART0init(U16);
//Объявление функции передачи байта через UART0 void UART0tx_byte(U8);
//Объявление функции приема байта через UART0 U8 UART0rx_byte();
//-----------------------------------------------------------------------
Файл main.c программы обслуживания UART0
//------------------------------_-----------------------------------------
// Основная программа обслуживания UART0
//------------------------------------------------------------------------
#include <iolpc2129.h> // подключение стандартных заголовков и определений tinclude "hardware.h" // подключение специальных заголовков и определений
#include "uart.h" // подключение специальных заголовков и определений
volatile extern U8 flagn_kn0, flagn_knl, flagn_kn2, flagn_kn3;
static U8 j=63; static U8 simw=' //---------------
//адрес в ОЗУ ЖКИ (адрес индикации) //индицируемый на ЖКИ символ
void main(void) {
CPUinit();
_disable_interrupt()
INTERRUPTSinit(); TIMEROinitstart();
_enable_interrupt();
delay(1000000); lcd_init(); delay(lOOOOOO); lcd_clear,Jj) ;
UARTOinit(115200); A_LEDl_OFF; A_LED2_OFF; while(1) {
if (flagn_kn0==l) {
flagn_kn0=0;
j++;
if (j > 79) {
j = 64; lcd_clear() }
simw++;
if (simw > ' z') lcd_pro_data(simw, UARTOtx_byte(simw)
}
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |