프로젝트 자료실
작성자 임베디드코리아
작성일16-08-03 15:26
조회3,273회
댓글0건
#include "lm3s9b92.h"
int main()
{
unsigned long ulValue;
unsigned long ulLoop,RecLoop;
char ch[16]="Hello LEE!";
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 &~(0x101);
SYSCTL_RCGC2_R=ulValue|0x101;
__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; //write 해야되서 disable
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; //다시 1로만듬
char RXTX_DATA;
/*
GPIO_PORTJ_DATA_R = GPIO_PORTJ_DATA_R &~(0x03);
GPIO_PORTJ_DATA_R |=0x00;
*/
while(1) // 1일때 전송 0일때 받기
{
if((UART0_FR_R & 0x20)){
RXTX_DATA=UART0_DR_R;
if(RXTX_DATA=='1')
{
ulValue = GPIO_PORTJ_AFSEL_R &~(0x01);
GPIO_PORTJ_AFSEL_R =ulValue |0x00;
ulValue = GPIO_PORTJ_DEN_R &~(0x01);
GPIO_PORTJ_DEN_R =ulValue |0x0F;
ulValue = GPIO_PORTJ_DIR_R &~(0x01);
GPIO_PORTJ_DIR_R =ulValue |0x0F;
GPIO_PORTJ_DATA_R = GPIO_PORTJ_DATA_R &~(0x0F);
GPIO_PORTJ_DATA_R |=0x00;
}
else
{
GPIO_PORTJ_DATA_R |=0x0F;
}
}
else{
UART0_DR_R=RXTX_DATA;
}
}
//return 0;
}