• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

使用C8051F的单片机来实现CAN控制

wanyanfei1984 2018-04-28 浏览量:1316

使用C8051F的单片机来实现CAN控制,可以进行数据的接收,发送不行

void CAN0_TransferMO (U8 obj_num)
{
   // This function assumes that the message object is fully initialized
   // in CAN0_Init and so all it has to do is fill the data registers and
   // initiate transmission

   U8 SFRPAGE_save = SFRPAGE;
   SFRPAGE  = CAN0_PAGE;               // All CAN register are on page 0x0C

   // Initialize all 8 data bytes even though they might not be sent
   // The number to send was configured earlier by setting Message Control

   CAN0IF1DA1H = obj_num;              // Initialize data registers based
   CAN0IF1DA1L = obj_num + 1;          // on message object used
   CAN0IF1DA2H = obj_num + 2;
   CAN0IF1DA2L = obj_num + 3;
   CAN0IF1DB1H = obj_num + 4;
   CAN0IF1DB1L = obj_num + 5;
   CAN0IF1DB2H = obj_num + 6;
   CAN0IF1DB2L = obj_num + 7;

   CAN0IF1CM = 0x0087;                 // Set Direction to Write
                                       // Write TxRqst all 8 data bytes

   CAN0IF1CR = obj_num;                // Start command request

   while (CAN0IF1CRH & 0x80);          // Poll on Busy bit

   SFRPAGE = SFRPAGE_save;
}


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 8051本身没有CAN的收发器吧,必须要外接TTL转CAN的收发芯片才行,况且这种芯片的通信速度要求很高的,8051的速度远远不够。

    • 发布于 2018-04-29
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2

  • 51单片机没有CAN系统,可以挂一片外置的IO实现转换,参考https://blog.csdn.net/xiang90721/article/details/41120557
    • 发布于2018-05-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

使用C8051F的单片机来实现CAN控制