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

📄 spi_uart.c

📁 lpc2131的串口程序
💻 C
字号:
#include "config.h"
#define nDSEN    7
#define LED      24
//const unsigned long DS2=(1<<24);
//#define DIS1	   20
//#define DIS2     21
//#define DIS3     22
//#define DIS4     23

uint8 rcv_test; 
uint8 rcv_data;
uint8 rcv_buf[4];
uint8 rcv_buf_test[]={"hello world\0"};
volatile uint8 rcv_new;

uint8  DISP_TAB[16] = {
//	  0	   1     2    3    4    5    6    7    8    9    A    b      C    d    E      F
	0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88, 0x83, 0xC6, 0xA1,0x86, 0x8E};  
	
void Delay1us(uint32 times)
{
 uint8   i=0;
 uint32  j=0;
 
 for(j=0; j<times; j++)
    {
	  for(i=0; i<60; i++);	
	}
}

 void __irq IRQ_UART0(void)
{  uint8 i;
   if((U0IIR & 0x0f)==0x04)
      rcv_new=1;
   for(i=0;i<4;i++)
   {  
      while ((U0LSR & 0x01) == 0);
      rcv_buf[i]=U0RBR;
   }
   VICVectAddr=0x00;
}

void IRQ_Init(void)
{
   VICIntSelect=0x00000000;
   VICVectCntl0=0x20|0x06;
   VICVectAddr0=(uint32)IRQ_UART0;
   VICIntEnable=1<<0x06;   
}

int main()
{  uint8 i,temp;
   rcv_new=0;
   rcv_test=0;
   
   PINSEL2=0x00000004;
   PINSEL0=0x00000005;
   PINSEL0|=0x00001500;

   TargetResetInit();
   UART0_Init(19200);
   SPI_Init();
   IRQ_Init();

   U0FCR=0x41;
   U0IER=0x01;

   IO0DIR=(uint32)(1<<nDSEN);
   IO1DIR=(uint32)(0x1f<<20);
   IO1SET=(uint32)(0x0f<<20);
   IO1SET|=(1<<LED);	

   while(1)
   {  if(rcv_new==1)
      {
	     rcv_new=0;
		 UART0_SendStr(rcv_buf);

		 rcv_test=rcv_buf[0];

         if(rcv_test=='7')
         {
	       UART0_SendStr(rcv_buf_test);

		   IO1CLR|=(1<<LED);

	     }
		 if(rcv_test=='1')
		 {
		   IO1SET|=(1<<LED);
		 }	 
		
	  }		
	 
	   for(i=0;i<=3;i++)
       {
	    IO1SET|=(0x0f<<20);
     	temp=rcv_buf[i]-'0';
	
        rcv_data=SPI_SendData(nDSEN,(uint16)(DISP_TAB[temp]));
	    IO1CLR|=(1<<(20+3-i));
	    Delay1us(10);	
       }	  
   }
     
}

⌨️ 快捷键说明

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