stm32学习——CAN通信
2018-08-09 本文已影响2人
三横一竖是我
CAN基础知识介绍
串行通信协议
1.多主控制,两个以上单位发送消息,根据标识符(ID)决定优先级
2.系统柔软性总线上添加单元,已连接的其他单元不需要改变
3.具有错误检测,错误通知,错误恢复
4.故障封闭错误
5.连接节点多
CAN 控制器根据CAN_L和CAN_H上的电位差判断总线电平,电线总电平分为D显性电平(之差为2V)和R隐形电平(之差为0V)
显性电平具有优先权
帧种类
帧种类.PNG数据帧由7个段组成
帧起始,仲裁段,控制段,数据段,CRC段(检查传输错误),ACK段(确认正常传输),帧结束
重点掌握四个重点:标识符,数据帧的构成,总线仲裁,位时序
CAN控制原理与配置
stm32自带基本扩展CAN外设,又称bxCAN
三种模式
模式.PNG
工作模式:通过CAN_MCR寄存器控制INRQ和SLEEP
测试模式:通过CAN_BTR寄存器控制LBKM和SILM
标志符筛选器
筛选器可配置为屏蔽位模式和标识符列表模式,屏蔽位模式下,标识符寄存器和屏蔽寄存器一起,指定报文标识符的任何一位
为了过滤一组标识符,设置屏蔽位模式
为了过滤一个标识符,设置标识符列表模式
通过CAN_FFA1R的设置,可以筛选关联到FIFO0/FIFO1
掩码.PNG
CAN发送流程
流程.PNG初始化流程
初始化流程CAN初始化函数名 :u8 CAN_Mode_Init()
发送函数 u8 CAN_Send_Msg(u8* Msg,u8 len)
接收函数 u8 CAN_Receive_Msg(u8 *buf)