求助....关于STM32F103C8T6的CAN通信

2019-07-21 06:33发布

本帖最后由 陌尘 于 2018-12-17 18:50 编辑

我们做了个板子,主控用的STM32F103C8T6,然后把程序下进去之后与阿波罗板用CAN通信,但是通信不通....
然后我把程序下到精英板上,就可以和阿波罗板通信成功...
波特率配的是500Kbps,CAN用的原子老师的库,程序如下:

[mw_shl_code=c,true]
#include "sys.h"
#include "delay.h"
#include "can.h"
#include "usart.h"

u8 CAN_RX_BUF[8];
u8 CAN_TX_BUF[8] = {1,2,3,4,5,6,7,8};

int main()
{
        SystemInit();
        delay_init();
        uart_init(115200);
        if(CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_9tq,4,CAN_Mode_Normal))//500kbps
        {
                printf("CAN初始化失败 ");
        }        
        printf("初始化完成 ");
        while(1)
        {        
                if(Can_Send_Msg(CAN_TX_BUF,8))
                {
                        printf("发送失败 ");
                }else printf("发送成功 ");
                if(Can_Receive_Msg(CAN_RX_BUF))
                {
                        printf("接收到数据 ");
                }
                delay_ms(100);
                for(int i = 0;i<8;i++)
                {
                        CAN_TX_BUF++;
                }
        }
}
[/mw_shl_code]
关于CAN的电路部分如下:
2.png 1.png

其中boot0和外部晶振的问题已经找到了,但是修复之后还是不通...请各位分析一下,问题在哪里,感激不尽...
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。