您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > PIC18F4580芯片CAN模块设置
PIC18F4580芯片CAN模块设置1、进入配置模式:a)CANCON_0=0x80请求进入配置模式;b)while(CANSTAT_0&0x80==0)循环查询进入配置模式完成;c)ECANCON=0x40配置运行模式;2、波特率设置:BRGCON1=0X01;BRGCON2=0X90;BRGCON3=0X42;3、发送设置a)TXB0CON=0X00设置发送优先级,清发送完成标识,配置发送请求状态自清除;b)配置ID:TXB0SIDH=0xc5;TXB0SIDL=0x39;TXB0EIDH=0x01;TXB0EIDL=0x17;c)TXB0DLC=0x08设置发送数据长度;4、发送过程a)TXB0Dn=0x00设置发送数据;b)TXB0REQ=1置发送请求标识位;c)while(TXB2REQ==1)查询等待发送结束标志位清除;5、发送设置a)RXFCON0=0xff使能过滤器;b)RXFBCON0=0x00设置过滤器与接收缓存器连接关系;c)MSEL0=0x00过滤器掩码选择;d)设置掩码:RXM0SIDH=0x07;RXM0SIDL=0xff;RXM0EIDH=0xff;RXM0EIDL=0x00;e)RXB0CON=0x00清接收满标识位;f)设置过滤器ID:RXF0SIDH=0xc7;RXF0SIDL=0xfa;RXF0EIDH=0xca;RXF0EIDL=0x00;6、退出配置模式:a)CANCON_0=0x00请求进入正常接收模式;b)while(CANSTAT_0&0xe0==1)循环查询进入正常接收模式完成;7、中断设置:a)RXB0FUL=0清缓存器接收满标识位;b)PIR3=0x00清缓存器接收中断标志位;c)PIE3=0x02使能缓存器接收总中断,失能发送中断;d)IPR3=0x02设置中断优先级;e)BIE0=0x1f使能各接收缓存器中断;8、接收中断处理:a)if(RXBNIF)判断接收缓存器中断标识位;b)switch(CANSTAT_0&0x1f)查找引起中断缓存器;c)switch(RXB0CON&0x1f)查找中断缓存器数据对应过滤器号;d)DT[0][0]=RXB0D1读取缓存器数据;e)RXB0FUL=0清相应接收缓存器中断标志位;
本文标题:PIC18F4580芯片CAN模块设置
链接地址:https://www.777doc.com/doc-4794509 .html