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

 
 
> sk-mlpc2478 не работает UART
lecko
сообщение Aug 22 2011, 14:15
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 22-08-11
Пользователь №: 66 820



Всем привет!

Начал программировать для платы SK-MLPC2478. попробовал скомпилировать код из книги Тревора (привожу ниже). Однако, никакого вывода в терминале не вижу вообще. Догадываюсь, что что-то криво настроено, однако пока разобраться не могу. в чем может быть причина?

Код
#include <lpc23xx.h>
#include "LCD.h"
void init_serial (void);
unsigned char putchar (unsigned char ch);
unsigned char getchar (void);

unsigned int flasher = 0x0000000;     
int main (void)
{
    
unsigned int delay; //
    /* Reset all GPIO pins to default: primary function */



    PINSEL0 = 0x00000000;
    PINSEL1 = 0x00000000;
    PINSEL2 = 0x00000000;
    PINSEL3 = 0x00000000;
    PINSEL4 = 0x00000000;
    PINSEL5 = 0x00000000;
    PINSEL6 = 0x00000000;
    PINSEL7 = 0x00000000;
    PINSEL8 = 0x00000000;
    PINSEL9 = 0x00000000;
    PINSEL10 = 0x00000000;
    
    IODIR0 = 0x00000000;
    IODIR1 = 0x00000000;
      IOSET0 = 0x00000000;
    IOSET1 = 0x00000000;
    
    FIO0DIR = 0x00000000;
    FIO1DIR = 0x00000000;
    FIO2DIR = 0x00000000;
    FIO3DIR = 0x00000000;
    FIO4DIR = 0x00000000;
    
    FIO0SET = 0x00000000;
    FIO1SET = 0x00000000;
    FIO2SET = 0x00000000;
    FIO3SET = 0x00000000;
    FIO4SET = 0x00000000;                    

    FIO2DIR = 0x000000FF;
    FIO2MASK = 0xFFFFFF00;
    
    init_serial();
    putchar('o');
    while(1)
    {
    
        putchar(getchar());
      }
    
    
return 0;    
}

void init_serial (void)              /* Initialize Serial Interface       */
{                     
    PINSEL0 |= 0x40000000;       /* Enable TxD1                       */
    PINSEL1 |= 0x00000001;       /* Enable RxD1                       */
  
    PCLKSEL0  = 0x02 << 8;         //set UART clock to 30Mkz
  
    U1LCR     = 0x00000083;         /* 8 bits, no Parity, 1 Stop bit     */
    U1DLL     = 0x000000C3;         /* 9600 Baud Rate @ 30MHz VPB Clock  */
    U1DLM   = 0x00000000;
    U1LCR     = 0x00000003;        /* DLAB = 0                          */
}


unsigned char putchar (unsigned char ch)               /* Write character to Serial Port    */
{                          

  
  while (!(U1LSR & 0x20));
  return (U1THR = ch);
}


unsigned char getchar (void)                 /* Read character from Serial Port   */
{                    

  while (!(U1LSR & 0x01));

  return (U1RBR);
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
SII
сообщение Aug 22 2011, 14:34
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



А в частоте процессора уверены? Её ж тоже надо настраивать, ведь частоты периферии являются её производными. (и, ИМХО, лучше всё делать самому вообще без всяких библиотек -- дольше, зато надёжней, а заодно и разберёшься реально, что там к чему)
Go to the top of the page
 
+Quote Post

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

 


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


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