1. #include "exynos_4412.h"
    2. void Delay(unsigned int Time)
    3. {
    4. while(Time --);
    5. }
    6. void UART_Init(void)
    7. {
    8. GPA1.CON = GPA1.CON & (~(0xFF << 0)) | (0x22 << 0);
    9. UART2.ULCON2 = UART2.ULCON2 & (~(0x7F << 0)) | (0x3 << 0);
    10. UART2.UCON2 = UART2.UCON2 & (~(0xF << 0)) | (0x5 << 0);
    11. UART2.UBRDIV2 = 53;
    12. UART2.UFRACVAL2 = 4;
    13. }
    14. void UART_Send_Byte(char Dat)
    15. {
    16. /*等待发送寄存器为空,即上一个数据已经发送完成 UTRSTAT2[1]*/
    17. while(!(UART2.UTRSTAT2 & (1 << 1)));
    18. /*将要发送的数据写入发送寄存器 UTXH2*/
    19. UART2.UTXH2 = Dat;
    20. }
    21. char UART_Rec_Byte(void)
    22. {
    23. char Dat = 0;
    24. /*判断接收寄存器是否接收到了数据 UTRSTAT2[0]*/
    25. while(!(UART2.UTRSTAT2 & 1));
    26. /*从接收寄存器中读取接收到的数据 URXH2*/
    27. Dat = UART2.URXH2;
    28. return Dat;
    29. }
    30. void UART_Send_Str(char * pstr)
    31. {
    32. while(*pstr != '\0')
    33. UART_Send_Byte(*pstr++);
    34. }
    35. int main()
    36. {
    37. char RecDat = 0;
    38. UART_Init();
    39. // GPX2.CON = GPX2.CON & (~(0xF << 28)) | (0x1 << 28);
    40. GPX1.CON = GPX1.CON & (~(0xF)) | (0x1);
    41. while(1)
    42. {
    43. RecDat = UART_Rec_Byte();
    44. printf("RecDat is:%c",RecDat);
    45. if(RecDat == '2')
    46. {
    47. // GPX2.DAT = GPX2.DAT | (1 << 7);
    48. GPX1.DAT = GPX1.DAT | 1;
    49. }
    50. else
    51. {
    52. continue;
    53. }
    54. loop: RecDat = UART_Rec_Byte();
    55. printf("RECDAT:%c",RecDat);
    56. if(RecDat == '2')PG
    57. {
    58. // GPX2.DAT = GPX2.DAT | (~(1 << 7));
    59. GPX1.DAT = GPX1.DAT & (~1);
    60. }
    61. else
    62. {
    63. goto loop;
    64. }
    65. }
    66. return 0;
    67. }