微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > 来大神帮忙改一下,怎样改成多字符串接收。感谢!C&UART

来大神帮忙改一下,怎样改成多字符串接收。感谢!C&UART

时间:10-02 整理:3721RD 点击:
#include <stdio.h>
#include <LPC2103.H>
#include "TFT018.h"
typedef char               S8;
typedef unsigned char      U8;
typedef short              S16;
typedef unsigned short     U16;
typedef int                S32;
typedef unsigned int       U32;
typedef long long          S64;
typedef unsigned long long U64;
typedef unsigned char      BIT;
typedef unsigned int       BOOL;
#define        LED        (1<<3)
#define        BUZZER        (1<<7)
/*----------------------------------------------------------*\
| Delay ns                                                 |
\*----------------------------------------------------------*/
void DelayNS (U32 dly) {
        U32 i;
        for ( ; dly>0; dly--)
                for (i=0; i<5000; i++);
        }
/*----------------------------------------------------------*\
| UART0 Initial                                            |
\*----------------------------------------------------------*/
void  UART0_init(void)        {
        unsigned short int fdiv;
        PINSEL0 |= 0x00000005;               // 设置I/O连接到UART0         173  p0.1
        U0LCR = 0x83;                      // DLAB = 1,可设置波特率   288
        fdiv = (60000000/16)/9600;
        U0DLM= fdiv/256;
        U0DLL = fdiv%256;
        U0LCR = 0x03;
        }
/*----------------------------------------------------------*\
| UART0 Send Char                                          |
\*----------------------------------------------------------*/
void  UART0_PutCh(unsigned char Ch)        {
        U0THR = Ch;                            // 发送数据        发送保存寄存器  282
        while( (U0LSR&0x40)==0 );          // 等待数据发送完毕         289
        }
/*----------------------------------------------------------*\
| UART0 Send String                                        |
\*----------------------------------------------------------*/
void  UART0_PutStr(unsigned char const *str) {
        while(*str)
                UART0_PutCh(*str++);         
        }
/*----------------------------------------------------------*\
| UART0 Get Char                                           |
\*----------------------------------------------------------*/
unsigned char  UART0_GetCh(void)        {
        while( (U0LSR&0x01)==0 );        //289
        return U0RBR;
        }
/*
unsigned char UART0_RcvByte(void)
{
        unsigned char rcv_data;
        while((U0LSR&0x01)==0);
        rcv_data = U0RBR;
        return(rcv_data);
}
*\
int main(void) {
        unsigned char s[]="";
        IODIR=0x000000FF;        //设置P0.0~P0.7为输出
       
        UART0_init();
        for(;;) {
                UART0_PutStr(s);
                s[0]=UART0_GetCh();
                if(strcmp(s[0],'c')==0){
                //if(s[0] == '1'){
                  
                   IOCLR = BUZZER;
                   IOSET =0x00000004;
                   IOSET =LED;
                   }
            if(strcmp(s[0],'o')==0){
                //if(s[0] == '0'){
                          IOSET = BUZZER;
                        IOCLR =0x00000004;
                           IOCLR = LED;
                   }
                DelayNS(10);
                }
        }

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top