C语言程序例程2
C语言程序例程//该程序实现发送缓冲器0向接收缓冲器0发送数据的自测试模式,其中接收采用中断方式//发送采用查询方式#include"p18f458.h"intCAN_FLAG;//定义标志寄存器//**************初始化子程序***************voidinitcan(){TRISB=(TRISB|0X08)&0XFB;//设置CANRX/RB3为输入,CANTX/RB2为输出//设置CAN的波特率为125K,在Fosc=4M时,Tbit=8us,假设BRP=01h//则TQ=[2*(1+BRP)]/Fosc=2*(1+1)/4=1us。//NOMINALBITRATE=8TQ,SJW=1,Sync_Seg=1TQ,Prog_Seg=1TQ,Phase_Seg1=3TQ,Phase_Seg2=3TQCANCON=0X80;//请求进入CAN配置模式REQOP=100while(CANSTAT&0X80==0){;}//等待进入CAN配置模式OPMODE=100BRGCON1=0X01;//设置SJW和BRP,SJW=1TQ,BRP=01HBRGCON2=0X90;//设置Phase_Seg1=3TQ和Prog_Seg=1TQBRGCON3=0X42;//设置Phase_Seg2=3TQ//设置发送邮箱0标识符号和发送的数据TXB0CON=0X03;//发送优先级为最高优先级,TXPRI=11TXB0SIDH=0XFF;//设置发送缓
用户评论