微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32 CAN 控制器

STM32 CAN 控制器

时间:11-11 来源:互联网 点击:

  1. d=0x12;// 标准标识符为0
  2. TxMessage.ExtId=0x12;// 设置扩展标示符(29位)
  3. TxMessage.IDE=0;// 使用扩展标识符
  4. TxMessage.RTR=0;// 消息类型为数据帧,一帧8位
  5. TxMessage.DLC=len;// 发送两帧信息
  6. for(i=0;i
  7. TxMessage.Data[i]=msg[i];// 第一帧信息
  8. mbox=CAN_Transmit(CAN1,&TxMessage);
  9. i=0;
  10. while((CAN_TransmitStatus(CAN1,mbox)==CAN_TxStatus_Failed)&&(i<0XFFF))i++;//等待发送结束
  11. if(i>=0XFFF)return1;
  12. return0;
  13. }
  14. //can口接收数据查询
  15. //buf:数据缓存区;
  16. //返回值:0,无数据被收到;
  17. // 其他,接收的数据长度;
  18. u8 Can_Receive_Msg(u8*buf)
  19. {
  20. u32 i;
  21. CanRxMsg RxMessage;
  22. if(CAN_MessagePending(CAN1,CAN_FIFO0)==0)return0;//没有接收到数据,直接退出
  23. CAN_Receive(CAN1,CAN_FIFO0,&RxMessage);//读取数据
  24. for(i=0;i<8;i++)
  25. buf[i]=RxMessage.Data[i];
  26. returnRxMessage.DLC;
  27. }


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top