[MM32软件] 【MM32 eMiniBoard测评报告】+ 03.CAN问题解决,数据收发OK

[复制链接]
 楼主| caizhiwei 发表于 2020-4-29 20:46 | 显示全部楼层 |阅读模式
1. 首先感谢论坛网友提前指出了这个巨坑!
  在原理图上,错误之处为:MCU的CAN_TX 连接到了 CAN收发器芯片的 CAN_RX, MCU的CAN_RX 连接到了 CAN收发器芯片的 CAN_TX,
正确的连接方法为:
MCU_CAN_TX <----> CAN_TX,
MCU_CAN_RX <----> CAN_RX,
说干就干,直接把电阻跳线对换,只有这个办法了!
微信图片_20200429204246.jpg
打开历程,默认是250k,参数稍微改一下,改成500k。
把接收发送历程融合在一起,哈哈,成功了!
main.c 如下:
  1. CanTxMsg CAN_TX_Config ={TX_CANID,CAN_ID_STD,CAN_DATA_FRAME,8,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};
  2. CanPeliRxMsg CanPeliRxMsgStructure;

  3. u8 user_can_mode = 0;

  4. int main(void)   
  5. {
  6.         int keycnt = 0;
  7.         delay_init();
  8.         delay_ms(3000);
  9.         LED_Init();               
  10.         KEY_Init();
  11.         uart_initwBaudRate(115200);
  12.         printf("CAN (500k) demo with mask id is 0x172,0x236!\r\n");
  13.         CANM_Init();
  14.         //只可接收验收代码寄存器中的两个CAN_ID的帧
  15.         CAN_Config(CAN_500K,StandardFrame_DoubleFilter,0x172,0x236,0xff,0xff);               
  16.        
  17.         while(1)
  18.   {
  19.          if(KEY4 == 0)
  20.          {
  21.                  delay_ms(30);
  22.                  while(KEY4 == 0);        
  23.                 keycnt++;
  24.                 if(keycnt%2)
  25.                 {
  26.                                 LED2_ON();
  27.                                 LED4_OFF();
  28.                                 user_can_mode = 1; // r
  29.                 }
  30.                 else
  31.                 {
  32.                                 LED2_OFF();
  33.                                 LED4_ON();
  34.                                 user_can_mode = 0; // s
  35.                 }                
  36.          }
  37.          
  38.           if(user_can_mode)
  39.           {
  40.                         Send_CANFrame(&CAN_TX_Config);                //发送一帧CAN数据
  41.                         printf("CAN send data OK!\r\n");        //串口打印
  42.                         delay_ms(300);
  43.           }
  44.           else
  45.           {  
  46.                         if(flag)                                                                                                                                       
  47.                         {
  48.                           flag = 0;
  49.                           LED4_TOGGLE();
  50.                           printf("CANID:0x%x Data:",CanPeliRxMsgStructure.ID);        //串口打印
  51.                           for(int i = 0; i < 8; i++)                                                                                                                       
  52.                           {
  53.                                 printf("%02x ",CanPeliRxMsgStructure.Data[i]);                //打印CAN报文内容
  54.                           }
  55.                           printf("\r\n");                                                                   //换行
  56.                         }
  57.           }
  58.   }
  59.   
  60.    
  61. }



微信图片_20200429204146.png 微信图片_20200429204154.png
期待您的点评!



 楼主| caizhiwei 发表于 2020-4-29 20:47 | 显示全部楼层

顶起来!
 楼主| caizhiwei 发表于 2020-4-29 20:48 | 显示全部楼层

sw2 开关要拨到靠近can芯片的那端!
chongdongchen 发表于 2020-4-30 09:28 | 显示全部楼层
确实不该啊,厂家要引起重视了。
而且,这板子都没有做过验证就发布了??
感谢楼主分享!
hayden0 发表于 2020-4-30 10:15 | 显示全部楼层
chongdongchen 发表于 2020-4-30 09:28
确实不该啊,厂家要引起重视了。
而且,这板子都没有做过验证就发布了??
感谢楼主分享! ...

的确,板子都没有配套的例程!
huangzushuimd 发表于 2020-4-30 11:51 | 显示全部楼层
本帖最后由 huangzushuimd 于 2020-4-30 12:03 编辑
hayden0 发表于 2020-4-30 10:15
的确,板子都没有配套的例程!

可以使用MiniBoard的样例验证测试;
huangzushuimd 发表于 2020-4-30 11:56 | 显示全部楼层
本帖最后由 huangzushuimd 于 2020-4-30 12:31 编辑

上拨是连到板上的SPI FLASH和CAN,请参考如图修改CAN连线,去除R30,R31,R30,R31的pad 交叉飞线连接一下;或者把U3的PIN4 连接到CN9的PIN21, 把U3的PIN1连接到CN9的PIN22.

修改方式

修改方式
hayden0 发表于 2020-4-30 13:34 | 显示全部楼层
huangzushuimd 发表于 2020-4-30 11:51
可以使用MiniBoard的样例验证测试;

我知道,但那是其他开发板的例程呀,不配套,要做部分修改,跟自己新建公车那个没什么两样了
uiint 发表于 2020-5-2 08:47 | 显示全部楼层
MM32 eMiniBoard
hellosdc 发表于 2020-5-2 08:47 | 显示全部楼层
自发自收实现了吗   
mituzu 发表于 2020-5-2 08:47 | 显示全部楼层
谢谢楼主的资料。   
suzhanhua 发表于 2020-5-2 08:47 | 显示全部楼层
CAN收发器芯片是什么呢   
xietingfeng 发表于 2020-5-2 08:47 | 显示全部楼层
稳定性怎么样呢   
isseed 发表于 2020-5-2 08:48 | 显示全部楼层
这个需要CAN电阻吗   
wangdezhi 发表于 2020-5-2 08:48 | 显示全部楼层
很给力 资料。      
biechedan 发表于 2020-5-2 08:48 | 显示全部楼层
         
chenci2013 发表于 2020-5-2 08:48 | 显示全部楼层
申请试试看,板子很棒。   
gygp 发表于 2020-5-2 08:48 | 显示全部楼层
给力啊,跟着楼主学习了。  
 楼主| caizhiwei 发表于 2020-5-8 09:41 | 显示全部楼层
isseed 发表于 2020-5-2 08:48
这个需要CAN电阻吗

电阻可以不要,直连也行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

100

主题

856

帖子

16

粉丝
快速回复 在线客服 返回列表 返回顶部

100

主题

856

帖子

16

粉丝
快速回复 在线客服 返回列表 返回顶部