📄 lin_hardware.c
字号:
//定义数据类型
#define uchar unsigned char
#define uint unsigned int
//定义引脚
sbit LIN_TXD=P2^0;
sbit LIN_RXD=P2^0;
sbit LIN_SLP=P2^0;
sbit LIN_WAKE=P2^0;
//定义芯片状态
code uchar TJA_STATE[]={ 1 };
//错误计数器
uchar ErrorCounter=0x00;
//定义超时标志
bit overtime_flag=0;
//错误标志
bit error_flag=0;
//从机ID
#define ID 0X35
//定义要传送的数据缓冲区
uchar send_datas[]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};
//定义要接收的数据缓冲区
uchar rece_datas[]={0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01};
//定义要传送多少个字节
uchar num=8;
//定义长时间
uchar time_n=0;
//波特率
#define b1200 0XE8
#define b2400 0XF4
//延时子程序 time 为多少ms
void delay_us(uchar time)
{
while(time--);
}
//延时子程序 time 为多少ms
void delay_ms(uchar time)
{
uchar i;
uint j;
for(i=0;i<time;i++)
for(j=0;j<1000;j++);
}
//设置波特率
void SetBaud(uchar baud)
{
TR1=0;
TMOD|=0X20;
TH1=baud;
TL1=baud;
TR1=1;
}
//设置超时定时 单位us
void SetTime(uchar time)
{
TR0=0;
TMOD|=0X01;
TH0=(65535-time)/256;
TL0=(65535-time)%256;
ET0=1;
EA=1;
TR0=1;
}
void timer0() interrupt 1
{
time_n++;
if(time_n>5)
{
overtime_flag=1;
time_n=0;
}
}
//串口发送子程序
void UartSend(uchar byte)
{
SCON=0X50;
TI=0;
SBUF=byte;
while(TI==0);
}
//串口接收子程序
uchar UartReceive()
{
uchar temp;
SCON=0X50;
RI=0;
while((RI==0)&(!overtime_flag));
temp=SBUF;
return temp;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -