📄 01-发送函数.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -