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

📄 ecan_tx.c

📁 TMSC320F2812串口SCI通信,SCIA,SCIB,波特率设置
💻 C
字号:
//**************************************************************************************
//eCAN Transmit
//**************************************************************************************                                                             
#include "DSP281x_Device.h"
#include "DSP281x_Examples.h"
#define TxCount  1000

void eCAN_TX(void)
	{
    	
    	long i;
    	struct ECAN_REGS ECanaShadow ;   
    	InitECan();
    	EALLOW ;
		//Write MSGID Area
    	ECanaMboxes.MBOX5.MID.all = 0x9FFFFFFF ; //Extended Flag
    	//Config MailBox5 As Send MailBox
    	ECanaShadow.CANMD.all = ECanaRegs.CANMD.all ;
    	ECanaShadow.CANMD.bit.MD5 = 0 ;
    	ECanaRegs.CANMD.all = ECanaShadow.CANMD.all ;
 
    	//Write MCF.DLC Set Frame Data Length = 8
    	ECanaMboxes.MBOX5.MCF.bit.DLC = 8 ;          
    	//Set MailBox5 Priority level
    	ECanaMboxes.MBOX5.MCF.bit.TPL = 0x1F ;   //priority level = 31,the heighest
    	//Mask MailBox5 Interaput
    	ECanaRegs.CANMIM.bit.MIM5 = 0 ;
    	//MailBox5 int Level
    	ECanaRegs.CANMIL.bit.MIL5 = 0 ;
    	//装载消息标志符MSGID Setting
    	ECanaMboxes.MBOX5.MID.bit.IDE = 1 ;
    	ECanaMboxes.MBOX5.MID.bit.AAM = 0 ;
    	ECanaMboxes.MBOX5.MID.bit.MSGID_L = 0x0005 ;   //16bit
    	ECanaMboxes.MBOX5.MID.bit.MSGID_H = 0x0000 ;   //13bit
    	//Write Data To MailBox5
    	ECanaMboxes.MBOX5.MDRL.all = 0x01234567 ;
    	ECanaMboxes.MBOX5.MDRH.all = 0x76543210 ;
    	//Enable Mailbox
    	ECanaShadow.CANME.all = ECanaRegs.CANME.all ;
    	ECanaShadow.CANME.bit.ME5 = 1 ;
    	ECanaRegs.CANME.all = ECanaShadow.CANME.all ;
    	
    	//Start Send
    	for (i=0;i<TxCount;i++)
    		{
    			
    			//使能发送
    			ECanaShadow.CANTRS.all = 0 ;      //写0无影响,写1清零
    			ECanaShadow.CANTRS.bit.TRS5 = 1 ;
    			ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all ;
    			//Wait Set TA
    			while(ECanaRegs.CANTA.bit.TA5 == 0){}   
    			//Clear TA
    			ECanaShadow.CANTA.all = 0 ;
    			ECanaShadow.CANTA.bit.TA5 = 1 ;
    			ECanaRegs.CANTA.all = ECanaShadow.CANTA.all ;
    			//Wait Clear TA
    			//while(ECanaRegs.CANTA.bit.TA5 == 1){}   
    	
    		} 
    	EDIS ;
    }

⌨️ 快捷键说明

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