test05.c

来自「UART RX with simple logic flow to check 」· C语言 代码 · 共 100 行

C
100
字号
#include <stdio.h>
#include <stdlib.h>
#include <LPC2103.H>

#define CR     0x0D

static unsigned char chr[15];
static unsigned int i = 0;


extern void Initialize(void);

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

  while (!(U0LSR & 0x01));

  return (U0RBR);
}


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

  if (ch == '\n')  {
    while (!(U0LSR & 0x20));
    U0THR = CR;                          /* output CR */
  }
  while (!(U0LSR & 0x20));
  return (U0THR = ch);
}

int main()
{
	int flag = 0;
	Initialize();

	while (1)
	{
		if(!flag)
		{
			chr[i] = getchar();
			i++;
							
			if (! (chr[9]==0xa) ) 
			{
				if(i == 10)
					i = 0;
				continue;
			}
		}

		if(i == 10)
		{
			if ((chr[1]) == 0x31)
				IOSET = 0x0100;
			if ((chr[1]) == 0x30)
				IOCLR = 0x0100;
	
			if ((chr[2]) == 0x31)
				IOSET = 0x0200;
			if ((chr[2]) == 0x30)
				IOCLR = 0x0200;
	
			if ((chr[3]) == 0x31)
				IOSET = 0x0400;
			if ((chr[3]) == 0x30)
				IOCLR = 0x0400;
	
			if ((chr[4]) == 0x31)
				IOSET = 0x0800;
			if ((chr[4]) == 0x30)
				IOCLR = 0x0800;
	
			if ((chr[5]) == 0x31)
				IOSET = 0x1000;
			if ((chr[5]) == 0x30)
				IOCLR = 0x1000;
	
			if ((chr[6]) == 0x31)
				IOSET = 0x2000;
			if ((chr[6]) == 0x30)
				IOCLR = 0x2000;
	
			if ((chr[7]) == 0x31)
				IOSET = 0x4000;
			if ((chr[7]) == 0x30)
				IOCLR = 0x4000;
	
			if ((chr[8]) == 0x31)
				IOSET = 0x8000;
			if ((chr[8]) == 0x30)
				IOCLR = 0x8000;

			i = 0;
			flag = 1;
		}

		chr[i] = getchar();
		i++;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?