你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
zhangxm6

zhangxm6

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
5 回答

stm32实现CAN发送邮箱空中断

未设置标签
stm32liusheng stm32liusheng 回答时间: 2022-10-27 17:00

看了一下 函数原型 ,的确是判断 RQCP, 哈哈,见笑了     case CAN_IT_TME:                /* Check CAN_TSR_RQCPx bits */                      itstatus = CheckITStatus(CANx->TSR, CAN_TSR_RQCP0|CAN_TSR_RQCP1|CAN_TSR_RQCP2); 确实是判断的这个寄存器 RQCP位!并且是直接判断3个发送邮箱的发送成功位 非常好用!

赞0
5 回答

如何用stm32 CAN实现stm32与电脑通信

未设置标签
zhangxm6 zhangxm6 回答时间: 2013-11-28 20:57

回复第 2 楼 于2013-08-31 10:07:37发表: PC机上没有CAN接口,直接通信不可行的,必须用一个转换模块,比如232转CAN接口, USB转CAN接口,这样才能让计算机和你的STM32 CAN接口通信,买了这样的接口后,只需要实现CAN协议代码即可 不好意思 很久没有进来了,这个问题已经解决了,谢谢!但是现在又出现一个新的问题了,STM32 CAN 通信中发送邮箱空中断,不管怎么样配置都进不去主要代码如下: void Can_Normal(void) {   CAN_InitTypeDef   CAN_InitStructure;   CAN_FilterInitTypeDef   CAN_FilterInitStructure;  CanTxMsg          TxMessage;   volatile    u8 TransmitMailbox = 0;     /* CAN register init */   CAN_DeInit(CAN1);   CAN_StructInit(&CAN_InitStructure);   /* CAN cell init */                                     CAN_InitStructure.CAN_TTCM=DISABLE; //???1ê±??′¥·¢í¨???£ê?   CAN_InitStructure.CAN_ABOM=DISABLE; //???1×??ˉà????£ê?   CAN_InitStructure.CAN_AWUM=DISABLE; //???1×??ˉ??D??£ê?   CAN_InitStructure.CAN_NART=DISABLE; //???1·?×??ˉ??′??£ê?   CAN_InitStructure.CAN_RFLM=DISABLE; //???1?óê?FIFO???¨?£ê?   CAN_InitStructure.CAN_TXFP=DISABLE; //???1·¢?íFIFOó??è??   CAN_InitStructure.CAN_Mode=CAN_Mode_Normal;                         // CAN_Mode_Normal;           CAN_InitStructure.CAN_SJW=CAN_SJW_1tq;   CAN_InitStructure.CAN_BS1=CAN_BS1_8tq; //ò??-????o?á?   CAN_InitStructure.CAN_BS2=CAN_BS2_7tq;   CAN_InitStructure.CAN_Prescaler=5;   CAN_Init(CAN1,&CAN_InitStructure);   CAN_OperatingModeRequest( CAN1, CAN_OperatingMode_Normal);           /* CAN filter init */         CAN_FilterInitStructure.CAN_FilterNumber=0;         CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;           //?á±????£ê?         CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;         CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;         CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;         CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;         CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;         CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_FIFO0;         CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;         CAN_FilterInit(&CAN_FilterInitStructure);                                     /* transmit 1 message */ /*          TxMessage.StdId=0x11;           //TxMessage.ExtId=0x1234;           TxMessage.IDE=CAN_ID_STD;  //à??1??ê?           TxMessage.RTR=CAN_RTR_DATA; //′?ê????¢μ???ààDí?aêy?Y??£¨?1óD??3ì??£?           TxMessage.DLC=6;                                     //        TxMessage.Data[0]='?';                      TxMessage.Data[0]=0x55;           TxMessage.Data[1]=0x55;           TxMessage.Data[2]=0x55;           TxMessage.Data[3]=0x55;           TxMessage.Data[4]=0x55;           TxMessage.Data[5]=0x55; */                    CAN_ITConfig(CAN1,CAN_IT_TME,ENABLE);       TransmitMailbox = CAN_Transmit(CAN1,&TxMessage); //        printf("receive data:0X%X,0X%X,0X%X,0X%X,0X%X,0X%X",TxMessage.Data[0], TxMessage.Data[1], TxMessage.Data[2], TxMessage.Data[3], TxMessage.Data[4], TxMessage.Data[5]);        } 是不是哪里配置错了呢?求指教  

赞0
zhangxm6 zhangxm6


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16