프로젝트 자료실

LM3S9B92 UART 소스

작성자 임베디드코리아 작성일16-08-03 09:44 조회3,443회 댓글0건

첨부파일

#include "lm3s9b92.h"

int main()
{
  unsigned long ulValue;
  unsigned long ulLoop;
  char ch[16]=" embedded korea";
  ch[14] = '\n';
  ch[15] = '\0';
 
 
  ulValue = SYSCTL_RCC_R & ~(0x00400800);
  SYSCTL_RCC_R = ulValue | 0x00000800; 
  ulValue = SYSCTL_RCC_R & ~(0x000027F0);
  SYSCTL_RCC_R = ulValue | 0x00000540; 
  ulValue = SYSCTL_RCC_R & ~(0x07C00000);
  SYSCTL_RCC_R = ulValue | 0x01C00000;
  for(ulLoop = 32768; ulLoop > 0; ulLoop--)
  {    ulValue = SYSCTL_RIS_R & 0x0040;
  if(ulValue)    {
    break; 
  }
  } 
  ulValue = SYSCTL_RCC_R & ~(0x00000800);
    SYSCTL_RCC_R = ulValue | 0x00000000; 
  ulValue = SYSCTL_RCGC2_R & ~(0x01);
  SYSCTL_RCGC2_R = ulValue | 0x01; 
  __asm(" nop ");
  __asm(" nop ");
  __asm(" nop "); 
  ulValue = GPIO_PORTA_AFSEL_R & ~(0x03);
  GPIO_PORTA_AFSEL_R = ulValue | 0x03; 
  ulValue = GPIO_PORTA_PCTL_R & ~(0xFF);
  GPIO_PORTA_PCTL_R = ulValue | 0x11; 
  ulValue = GPIO_PORTA_DEN_R & ~(0x03);
  GPIO_PORTA_DEN_R = ulValue | 0x03;   
  ulValue = SYSCTL_RCGC1_R & ~(0x01);
  SYSCTL_RCGC1_R = ulValue | 0x01;
  __asm(" nop ");
  __asm(" nop ");
  __asm(" nop "); 
  ulValue = UART0_CTL_R & ~(0x01);
  UART0_CTL_R = ulValue | 0x00; 
  ulValue = UART0_IBRD_R & ~(0xFF);
  UART0_IBRD_R = ulValue | 0x1B; 
  ulValue = UART0_FBRD_R & ~(0x0F);
  UART0_FBRD_R = ulValue | 0x08; 
  ulValue = UART0_LCRH_R & ~(0xFF);
  UART0_LCRH_R = ulValue | 0x60; 
  ulValue = UART0_CTL_R & ~(0x01);
  UART0_CTL_R = ulValue | 0x01;
  while(1){
    ulLoop = 0;
    while(ch[ulLoop] != '\0')      {
      while( UART0_FR_R & 0x20);
      UART0_DR_R = ch[ulLoop++];
    }
  } //end while
} //end main