huadao

    1. CAN 程序请教 8/2846 stm32/stm8 2017-12-14
      发送中的 CAN_ITConfig(CAN1, CAN_IT_TME, ENABLE);//被使用的邮箱标记// 中断中的 CAN_ClearITPendingBit(CAN1,CAN_IT_RQCP0);//清除CANx的中断位//             CAN_ITConfig(CAN1, CAN_IT_TME, DISABLE);//发送邮箱空中断// 反复在操作同一个标志
    2. CAN 程序请教 8/2846 stm32/stm8 2017-12-14
      huo_hu 发表于 2017-12-14 11:07 这个只能自己设计了呀
      可否指点下 CAN 发送中断程序 /*--------------------------------------------------------------------------------------- //CAN1 发送数据// ----------------------------------------------------------------------------------------*/ int CAN_tx_msg(CanTxMsg TxMessage) {     uint8_t TransmitMailbox = 0;     //OS_CPU_SR  cpu_sr = 0;     TransmitMailbox = CAN_Transmit(CAN1, TxMessage);     if(CAN_NO_MB == TransmitMailbox)//没有提供空邮箱//     {         printf("tx can fail\r\n");//打印邮箱错误//         return 0;     }     else     {         //OS_ENTER_CRITICAL();                  CAN_msg_num[TransmitMailbox] = 1;//被使用的邮箱标记//        // OS_EXIT_CRITICAL();     }         CAN_ITConfig(CAN1, CAN_IT_TME, ENABLE);//被使用的邮箱标记//     return 1; } /*--------------------------------------------------------------------------------------- //CAN1  发送中断// ----------------------------------------------------------------------------------------*/ void USB_HP_CAN1_TX_IRQHandler(void) {     if(CAN_msg_num[0])//发送邮箱0空中断//     {         if(SET == CAN_GetITStatus(CAN1,CAN_IT_RQCP0))//发送邮箱空中断//         {             CAN_ClearITPendingBit(CAN1,CAN_IT_RQCP0);//清除CANx的中断位//             CAN_ITConfig(CAN1, CAN_IT_TME, DISABLE);//发送邮箱空中断//             CAN_msg_num[0] = 0;         }     }         if(CAN_msg_num[1])//发送邮箱1空中断//     {         if(SET == CAN_GetITStatus(CAN1,CAN_IT_RQCP1))//发送邮箱空中断//         {             CAN_ClearITPendingBit(CAN1,CAN_IT_RQCP1);//清除CANx的中断位//             CAN_ITConfig(CAN1, CAN_IT_TME, DISABLE);//启用或禁用指定的CANx中断//             CAN_msg_num[1] = 0;         }     }         if(CAN_msg_num[2])//发送邮箱2空中断//     {         if(SET == CAN_GetITStatus(CAN1,CAN_IT_RQCP2))//发送邮箱空中断//         {             CAN_ClearITPendingBit(CAN1,CAN_IT_RQCP2);//清除CANx的中断位//             CAN_ITConfig(CAN1, CAN_IT_TME, DISABLE);//启用或禁用指定的CANx中断//             CAN_msg_num[2] = 0;         }     }     } 这段程序在网上看到的 怎么感觉3个邮箱和一个用法没区别,每个邮箱空的中断区分不开 #define CAN_IT_RQCP0   CAN_IT_TME #define CAN_IT_RQCP1   CAN_IT_TME #define CAN_IT_RQCP2   CAN_IT_TME 都是CAN_IT_TME
    3. 感谢!!!!
    4. 5分钟搭建你的三按键和12864多级菜单 56/20519 51单片机 2017-11-18
      不错
    5. 感谢!!!
    6. spwm超级无敌stm32步进电机控制教程 255/164966 电机控制 2017-11-18
      好资料

最近访客

< 1/1 >

统计信息

已有3人来访过

  • 芯积分:--
  • 好友:--
  • 主题:1
  • 回复:6

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言