串口通讯经常用到,CAN通讯没有接触过,一直感到很神秘。。。。。。
今天进行了CAN的实验,没想到如此简单。
A板发送ID+自定义数据+增量自加1 接收到B板数据后由串口输出
B板发送ID+自定义数据+增量自加1 接收到A板数据后由串口输出
硬件准备:CAN收发器模块,一块小小的板子,元件没几个;
两个单片机实验板,我用的是自制的STC32G12K128最小板和一个STC官方实验板;
一根网线;
当然还要有电脑;
代码下载:全部例程源码和原理图
CAN2双板测试.7z
(369.96 KB, 下载次数: 379)
软件准备:编译软件KEILC251;下载及串口通讯软件STCISP6.90
让我们来开始实验吧!
首先更改例程代码,两块板子A板和B板均使用CAN2进行通讯,所以例程中做如下设置:
CAN2初始化要点:地址;CAN2引脚;速率;
A板地址:CAN2_ID = 0x012A; B板地址:CAN2_ID = 0x022A;
CAN2引脚:P_SW3 = (P_SW3 & ~(3)) | (1); // 0x00:P0.2,P0.3 0x01:P5.2,P5.3 0x02:P4.6,P4.7 0x03:P7.2,P7.3
切换到P5.2,P5.3引脚上;
要使TJA1050工作,还要让其第8脚接GND,所以代码中还要将P5^4置0:先定义引脚 sbit CAN_S = P5^4; 再在主函数中加入CAN_S=0;
或者直接将第8脚接GND.
实验照片:
|