01-发送函数.c

来自「CAN现场总线.rar」· C语言 代码 · 共 46 行

C
46
字号

#include "reg52.h"
#include "sja1000.h"

unsigned char Txd_data;

//CAN节点发送函数
void CAN_TXD(void)
{
	unsigned char bdata temp;
	do
	{
		temp=SR;		//判断报文接收完毕?	
	}
	while(temp&0x10);	//SR.4=0 发送闲置,SR.4=1 发送状态中

	do
	{
		temp=SR;		  //判断最后报文请求?	
	}
	while(!(temp&0x08));  //SR.3=0 没有余报文请求,SR.3=1 还存在报文请求

	do
	{
		temp=SR;		  //判断TXFIFO是否锁定?
	}
	while(!(temp&0x04));  //SR.2=0 锁定,SR.2=1 开放

	TBSR0=0x88;			//ff=1 SFF格式,DLC.3=1 数据长度8
	TBSR1='C';			//目标节点地址 CAN0
	TBSR2='A';
	TBSR3='N';
	TBSR4=0x00;
	TBSR5=Txd_data;		//数据
	TBSR6=0x00;
	TBSR7=0x00;
	TBSR8=0x00;
	TBSR9=0x00;
	TBSR10=0x00;
	TBSR11=0x00;
	TBSR12=0x00;
	
	CMR=0x01;			//命令寄存器-自动发送请求

}

⌨️ 快捷键说明

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