CAN
1.CAN通讯特点
a.采用总线方式可挂载单元多理论上没有上限,速度快,距离远
b.CAN显性电平对应逻辑0压差2V,隐形电平对应逻辑1压差0V,显性电平具有优先权,
c.CAN有5种帧,数据帧,遥控帧分为标准帧(11位标识符)ID和扩展帧(29位标识符)ID
d.数据帧由7个段组成
e.波特率=系统时钟/((tq+tbs1+tbs2)*分频系数) 单位kb
f.CAN可以根据接收数据帧的ID判断属于哪个单元
g.CAN有过滤器与RS485对比485没有过滤器,过滤器可以减少组网过程中其他单元的CPU不必要的处理
2.HAL库函数
a.用CAN通讯必须要开启过滤器
b.库函数必须接收报文可以先判断ID
c.用HAL库则必须要添加以下几段代码作为缓冲区
void CAN_Config(void) { hcan.pRxMsg=&Rxmessage; hcan.pTxMsg=&Txmessage; //后面过滤器函数省略 }