⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test05.c

📁 UART RX with simple logic flow to check the protocol correct or not. Important is that the logic flo
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -