- 打卡等级:以坛为家I
- 打卡总天数:385
- 最近打卡:2025-05-01 08:05:45
高级会员
- 积分
- 725
|
刚开始学习CAN 没有屠龙刀 使用自己做的学习板子。芯片STC32G128K
can1 P00 P01
CAN2 P02 P03
使用2个tja1050模块。两个模块的CANH CANL分别连接。
第一个模块的RX TX 分别接入P00 P01 第二个模块的RX TX 分别接P02 P03
程序使用的是手册上的标准帧收发测试。
由于没有USB转CAN 所以通过显示屏 显示接受的内容。现在是无论如何都无法接收到。
while(1)
{
if(!P32)
{P15 = !P15;
CANSEL = 0; //选择CAN1模块
CanSendMsg(CAN_ID,TX_BUF);
}
while(!P32);
if(B_200ms)
{
B_200ms = 0;
CANSEL = 1; //选择CAN2模块
CanReadFifo(buffer);
OLED_ShowNum_string(1,0,buffer[1],4,1);
OLED_ShowNum_string(6,0,buffer[2],4,1);
OLED_ShowNum_string(11,0,buffer[3],4,1);
OLED_ShowNum_string(1,2,buffer[4],4,1);
OLED_ShowNum_string(6,2,buffer[5],4,1);
OLED_ShowNum_string(11,2,buffer[6],4,1);
OLED_ShowNum_string(1,4,buffer[7],4,1);
OLED_ShowNum_string(6,4,buffer[8],4,1);
OLED_ShowNum_string(11,4,buffer[9],4,1);
OLED_ShowNum_string(1,6,buffer[10],4,1);
OLED_ShowNum_string(6,6,buffer[11],4,1);
OLED_ShowNum_string(11,6,buffer[12],4,1);
}
}
我的想法是按下P32 第一个CAN模块发送一帧数据。CAN2 模块接受 。我读取内容显示到OLED上。
不知道出错到哪里。
can测试.zip
(133.52 KB, 下载次数: 2)
|
|