flexcan.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /******************************************************************************
  2. 版权所有:
  3. 文件名称: flexcan.h
  4. 文件版本: 01.01
  5. 创建作者: sunxi
  6. 创建日期: 2013-02-03
  7. 功能说明: FLEXCAN驱动
  8. 其它说明:
  9. 修改记录:
  10. */
  11. #ifndef _FLEXCAN_H
  12. #define _FLEXCAN_H
  13. /*------------------------------- 头文件 --------------------------------------
  14. */
  15. /*------------------------------- 宏定义 --------------------------------------
  16. */
  17. #define CAN_BUS_NUM 2 // 底板支持的CAN总线数量
  18. #define CAN_BUS_ADDR_NUM 16 // 底板支持的插槽数量(与CAN地址数量一一对应)
  19. #define CAN_BUS_ADDR_BCAST 0X0F // 广播地址
  20. #define CAN_FRAME_LEN_MAX 256
  21. typedef int (*FN_CAN_RECV_CALLBACK)(u32 no,u8 * buf);
  22. /*------------------------------ 类型结构 -------------------------------------
  23. */
  24. struct can_frame_head
  25. {
  26. u8 type;
  27. u8 dst;
  28. u8 src;
  29. u8 len;
  30. };
  31. /*------------------------------ 函数声明 -------------------------------------
  32. */
  33. int can_init(void);
  34. int can_exit(void);
  35. int can_regester_recv_callback(FN_CAN_RECV_CALLBACK fn);
  36. u8 * can_request_tx_buf(u8 type);
  37. int can_send(u32 no,u8 *buf);
  38. int can_recv(u32 no,u8 *buf,u32 len);
  39. int can_stat(void);
  40. int can_stat_reset(void);
  41. int can_test(void);
  42. #endif //_FLEXCAN_H
  43. /*------------------------------ 文件结束 -------------------------------------
  44. */