- 博客(1)
- 资源 (3)
- 收藏
- 关注
原创 基于51单片机SJA1000 CAN通讯实现(C语言程序)
经过一个星期的艰苦奋斗,终于将两个SJA1000通过51单片机成功通讯了!采用的是Pelican工作模式,扩展帧数据格式,验收滤波器是采用单滤波扩展帧模式。发送和接收代码都全部相同样!一 实物图二 串口输出调试信息三 以下是全部程序代码:包括1 main.c、2 uart.h、3 uart.c、4 sja1000.h、5 sja1000.c。1main.c#
2015-10-23 12:59:33
25821
11
ISO 26262-5-Product development_Hardware level.pdf
ISO26262英文标准完整版
ISO26262英文标准完整版
ISO26262英文标准完整版
2019-09-19
基于51单片机的SJA1000收发程序
#include "reg51.h"
#include "uart.h"
#include "string.h"
#include "sja1000.h"
sbit KEY=P2^5;
void main(void)
{
unsigned char init,state,num,i=0;
UART_Init();
if(SJA_Interface_Test())
{
UART_Send_String("\r\nSJA TO CPU Right!\r\n");
}
else
{
UART_Send_String("\r\nSJA TO CPU Error!\r\n");
}
init=SJA_Init();
if(init==0)
{
UART_Send_String("\r\nSJA Init OK!\r\n");
}
else
{
UART_Send_String("\r\nSJA Init Error!\r\n");
UART_Send_Byte(init);
}
while(1)
{
if(KEY==0)
{
DelayMs(10);
if(KEY==0)
{
CAN_Send_Str("ILoveY\r\n");
Display(num);
if(num++==14) num=0;
}
DelayMs(200);
}
SJA_BCANAdr = REG_STATUS;
state=*SJA_BCANAdr;
if((state&0x40)==0x40) { UART_Send_String("\r\nSJA Error count overflow!!\r\n"); SJA_Init(); }
if((state&0x20)==0x20) UART_Send_String("SJA1000 CAN BUS is transmiting!\r\n");
}
}
2015-10-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人