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

📄 main.c

📁 LPC2129芯片串口和can口使用利用该芯片那带串口和can控制器设计转换桥
💻 C
字号:
#include "config.h"	
#include "main.h"	
#include "time.h"	
#include "IncludeCan.H"		
 
 
INT8U 	LEDSTATUS1;
INT8U 	LEDSTATUS2;
extern 	INT8U	FFC;
extern 	INT32U	FFCOUNT;
extern 	INT32U	FCOUNT;



void delays(unsigned char del)
{
  unsigned long j=50000;
  j=j*del;
  while(--j);  
}
 
  
int main()
{	
  PINSEL1=0;                            //P0 upper 16 bits all GPIO
  PINSEL2 = PINSEL2|0x00000004; 		//设置p1.16-p1.25用作GPIO,P1.26-P1.31用作JTEG
  IO0DIR=0x00200000;                    //IODIR 0000 0001 0000 0000 0000 0001 0000 0001...P0.21 are output(beep)also TXD0,TXD1
  IO1DIR=0x00030000;                    //I1DIR 0000 0000 0000 0011 0000 0000 0000 0000...P1.16, P1.17 are output(LEDs)
	InitCAN (CAN1);
	InitCAN (CAN2);
	ConfigAFReg ();
	UARTInit (UART0);
	FFC=0;
	FCOUNT=0;
	FFCOUNT=0;
	A_LED1_ON;
    A_LED2_ON;
    BEEP_ON;
    delays(40);
    BEEP_OFF;
    delays(20);
    BEEP_ON;
    delays(40);
    BEEP_OFF;
	A_LED1_OFF;
    A_LED2_OFF;
	UARTRcvCounter = 0;
	memcpy(UARTSendBuf, strHelloArmCan, 12);				//启动时向串口发送初始化成功信号
	UARTSend (UART0,12,UARTSendBuf);
	while (1)
	{
		if (FFC==0)
		{
			FFCOUNT++;

			if (FFCOUNT>187500000)
			{	
				InitCAN (CAN1);
				InitCAN (CAN2);
				ConfigAFReg ();
				UARTInit (UART0);

				memcpy(UARTSendBuf, strCheckSunErr, 12);	//5M启动向串口发送串口无数据接收错误
				UARTSend (UART0,12,UARTSendBuf);
				FFCOUNT=0;
			}
			FCOUNT=0;
		}
		else
		{
			FCOUNT++;
			if (FCOUNT>156250)
			{
				UARTInit (UART0);
				memcpy(UARTSendBuf, strDATErr, 12);			//1/4S启动向串口发送串口接收超时错误
				UARTSend (UART0,12,UARTSendBuf);
				FFC=0;
				UARTRcvCounter=0;
				FCOUNT=0;
			}
			FFCOUNT=0;
		}
		
		
		if ((CANRcvCyBufApp[CAN1].WritePoint != CANRcvCyBufApp[CAN1].ReadPoint)||CANRcvCyBufApp[CAN1].FullFlag)
		{
			if (U0LSR&0x20)
			{
				CANSendToRS232 (CAN1, UART0, &CANRcvCyBufApp[CAN1] );
			}
		}
		//*******************
		if ((CANRcvCyBufApp[CAN2].WritePoint != CANRcvCyBufApp[CAN2].ReadPoint)||CANRcvCyBufApp[CAN2].FullFlag)
		{
			if (U0LSR&0x20)
			{
				CANSendToRS232 (CAN2, UART0, &CANRcvCyBufApp[CAN2] );
			}
		}
		//********************
		if (UARTRcvNewData  == 1)
		{
			SRBuf[0]=0x12;
			SRBuf[1]=0;									//SRBuf[15]>>4;
			SRBuf[2]=0x88;
														//SRBuf[15]=SRBuf[15]&0x0F;
			SRBuf[15]=0;
			RS232SendToCAN (SRBuf[1],SRBuf[15] ,&Rs232toCANDataBuf, SRBuf );
			UARTRcvNewData = 0;
		}
		//********************
		if (UARTRcvNewData  == 2)
		{
			memcpy(UARTSendBuf, strDATErrr, 12);		//
			UARTSend (UART0,12,UARTSendBuf);
			UARTRcvNewData = 0;
		}
	}
}

⌨️ 快捷键说明

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