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

📄 main.c

📁 lpc2368关于can模块的代码 对于从事此方面的兄弟有一定帮助
💻 C
字号:
/****************************************Copyright (c)**************************************************
***文件名称:CAN验收滤波测试程序
***作者:张利刚
***单位:中科院微系统所嘉兴分中心网络组
***时间:2008年7月17日
********************************************************************************************************/



#include "config.h"
#include "LPC2300CAN.h"
#include "AF_SET.h"
#include "uart.h"

/*
 * 定义CAN帧结构体变量
 */
MessageDetail MessageDetailT;                     // 定义发送帧
MessageDetail MessageCAN0;                        // 定义CAN0通道帧接收帧
MessageDetail MessageCAN1;                        // 定义CAN1通道帧接收帧

char * str1="SFF INITAIL OK!";
char * str2="EFF INITAIL OK!";
char * str3="AFMR register INITAIL OK!";
char * str4="CPU working is OK!!";



/*********************************************************************************************************
** 函数名称:  IRQ_Timer0
** 函数功能:  定时器0中断服务程序,取反蜂鸣器控制口。
** 入口参数:  无
** 出口参数:  无
*********************************************************************************************************/
void __irq IRQ_Timer0(void)
{
	UART0_SendStr(str4);
	DISP_CHANGEROW();
	T0IR        = 0x01;					// 清除中断标志	
	VICVectAddr = 0x00;					// 通知VIC中断处理结束
}


/**************************************************************************************************
******说明:1、所有程序的启动代码要根据LPC2300工程模板编写程序
******		2、初始化的时候一定要注意开总中断的位置
******
*****************************************************************************************************/

int main (void)
{	
	_AF_SFF_CELL	IndvSFFTab[] = {{0xbb,0,0,0,0xaa,0,0,0},{0xdd,0,0,0,0xcc,0,0,0},{0xff,0,0,1,0xee,0,0,0}};
	_AF_EFF_CELL	IndvEFFTab[] = {{0x123,0},{0x456,0},{0x789,0},{0xabc,0}};
	
	
	//初始化串口
	UART0_Init();		
	U0IER |= 0x01;	
	
	INI_LED();	
		

	/* 定时器0初始化 */
	T0TC    = 0;						// 定时器设置为0										
	T0PR    = 0;						// 时钟不分频											
	T0MCR   = 0x03;						// 设置T0MR0匹配后复位T0TC,并产生中断标志				
	T0MR0   = Fpclk;					// 0.5秒钟定时										
	T0TCR   = 0x01;						// 启动定时器										
								

	/* 设置定时器0中断IRQ */
	VICIntSelect = 0x00;				// 所有中断通道设置为IRQ中断		
	VICVectPri4  = 00;					// 设置定时器0中断最高优先级	
	VICVectAddr4 = (uint32)IRQ_Timer0;	// 设置中断服务程序地址					
	VICIntEnable = 1 << 0x04;			// 使能定时器0中断	
	 					
	//初始化can								
    //CAN_Init(0,BPS_100K); // 初始化第1路CAN,波特率为100K
    if((CAN_Init(0,BPS_100K) & 0x01) == 1)
    	{
    		UART0_SendStr(str3);
    		DISP_CHANGEROW();
    	} 	
    	
    					
	/* 打开IRQ中断 */
	IRQEnable();						// IRQ中断使能	

	AF_Build_LUT(0,10,0,10,0);	//建立look up 表格
	
	//初始化表格
	//AFInitSFFInivTab(IndvSFFTab,sizeof(IndvSFFTab)/sizeof(_AF_SFF_CELL));
	if(AFInitSFFInivTab(IndvSFFTab,sizeof(IndvSFFTab)/sizeof(_AF_SFF_CELL)) == 0)
		UART0_SendStr(str1);
		DISP_CHANGEROW();
	//AFInitEFFInivTab(IndvEFFTab,sizeof(IndvEFFTab)/sizeof(_AF_EFF_CELL));
	if(AFInitEFFInivTab(IndvEFFTab,sizeof(IndvEFFTab)/sizeof(_AF_EFF_CELL)) == 0)
		UART0_SendStr(str2);
		DISP_CHANGEROW();
	
    	
    
  
	/* 使用CAN1 通道时 注意硬件是否连接,通道是否已被初始化 */
	while(1)
	{
		;
		//OPEN_CLOSE_LED(3);// 中断处理:CANIntPrg()函数中完成
	}

}

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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