如何一步一步建立CAN通讯
时间:12-14
来源:互联网
点击:
分频器
#define ID3 00 //ID3
-----------------------------
初始化程序
uchar main_ch=0;
IO_Init(); //I/O口初始化
INT1_Init();
GET_add(); //获取地址,地址为0,反复获取地址,直到不为0。
NET_LED_on;
ERR_LED_on; //初始化中,点亮故障灯和通讯灯,
delay50ms(2);
dog();
delay50ms(2);
dog();
delay50ms(2);
dog();
CAN_Init(); //CAN初始化
NET_LED_off;
ERR_LED_off;
SEI();
CAN_first_send(); //CAN试发送
delay50ms(1);
dog();
void GET_add(void) //地址获取程序
{
uchar add_temp=0,add_temp1=0,add_temp2=0,add_temp3=0,addr_temp=0;
do
{
dog();
NET_LED_on;
ERR_LED_on;
add_temp1=PINC&0xc3;
add_temp2=add_temp1>>4;
add_temp1=add_temp1&0x03;
add_temp3=(PIND&0xe0)>>1;
add_temp=add_temp1+add_temp2+add_temp3;
add_temp=(~add_temp)&0x7f;
addr=add_temp;
delay50ms(2);
}
while(addr==0);
}
#define ID3 00 //ID3
-----------------------------
初始化程序
uchar main_ch=0;
IO_Init(); //I/O口初始化
INT1_Init();
GET_add(); //获取地址,地址为0,反复获取地址,直到不为0。
NET_LED_on;
ERR_LED_on; //初始化中,点亮故障灯和通讯灯,
delay50ms(2);
dog();
delay50ms(2);
dog();
delay50ms(2);
dog();
CAN_Init(); //CAN初始化
NET_LED_off;
ERR_LED_off;
SEI();
CAN_first_send(); //CAN试发送
delay50ms(1);
dog();
void GET_add(void) //地址获取程序
{
uchar add_temp=0,add_temp1=0,add_temp2=0,add_temp3=0,addr_temp=0;
do
{
dog();
NET_LED_on;
ERR_LED_on;
add_temp1=PINC&0xc3;
add_temp2=add_temp1>>4;
add_temp1=add_temp1&0x03;
add_temp3=(PIND&0xe0)>>1;
add_temp=add_temp1+add_temp2+add_temp3;
add_temp=(~add_temp)&0x7f;
addr=add_temp;
delay50ms(2);
}
while(addr==0);
}
CAN通讯硬件环 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)