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

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

[复制链接]
zhangxm6 提问时间:2013-8-26 18:25 /
急求 如何用stm32 CAN实现stm32与电脑传输数据!!!!!! 知道麻烦回复一下,将非常感谢!有代码更好。
收藏 评论5 发布时间:2013-8-26 18:25

举报

5个回答
fengye5340 回答时间:2013-8-31 10:07:37

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

PC机上没有CAN接口,直接通信不可行的,必须用一个转换模块,比如232转CAN接口, USB转CAN接口,这样才能让计算机和你的STM32 CAN接口通信,买了这样的接口后,只需要实现CAN协议代码即可
feiante-155820 回答时间:2013-8-31 10:37:34

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

同意楼上的说话,应该要转换模块的
dennywang 回答时间:2013-9-3 19:02:36

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

2楼正解,
dennywang 回答时间:2013-9-5 19:04:03

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

http://www.zlg.cn/sitecn/CAN-bus/cate_107.html
以上是周立功公司设计的canbus转换器,各种类型的,总有一种适合你。
ps不是打广告的,挺好用
zhangxm6 回答时间:2013-11-28 20:57:34

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

回复第 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]);       
}
是不是哪里配置错了呢?求指教
 

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版