[STM32F7]

能发送,接收不到

[复制链接]
173|14
手机看帖
扫描二维码
随时随地手机跟帖
stly|  楼主 | 2022-12-4 13:58 | 显示全部楼层 |阅读模式
STM32F769 CAN3的配置,能发送,接收不到,为什么?配置如下:
/* CAN3 init function */
static void MX_CAN3_Init(void)
{
    CAN_FilterTypeDef sFilterConfig;
   
    hcan3.Instance = CAN3;
    hcan3.Init.Prescaler = 54000000ul / 250000 / 18;
    hcan3.Init.Mode = CAN_MODE_NORMAL;
    hcan3.Init.SyncJumpWidth = CAN_SJW_1TQ;
    hcan3.Init.TimeSeg1 = CAN_BS1_11TQ;
    hcan3.Init.TimeSeg2 = CAN_BS2_6TQ;
    hcan3.Init.TimeTriggeredMode = DISABLE;
    hcan3.Init.AutoBusOff = DISABLE;
    hcan3.Init.AutoWakeUp = DISABLE;
    hcan3.Init.AutoRetransmission = DISABLE;
    hcan3.Init.ReceiveFifoLocked = DISABLE;
    hcan3.Init.TransmitFifoPriority = DISABLE;
    if (HAL_CAN_Init(&hcan3) != HAL_OK)
    {
        _Error_Handler(__FILE__, __LINE__);
    }
    //过滤器设置
    sFilterConfig.FilterBank  = 0;                      //过滤器组0  
    sFilterConfig.FilterMode  = CAN_FILTERMODE_IDMASK;  //工作在标识符屏蔽位模式  
    sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;  //滤波器位宽为单个32位  

    sFilterConfig.FilterIdHigh = 0;                     //(((unsigned int)0x1314<<3)&0xFFFF0000)>>16;                 //要过滤的ID高位  
    sFilterConfig.FilterIdLow  = 0;                     //(((unsigned int)0x1314<<3)|CAN_ID_EXT|CAN_RTR_DATA)&0xFFFF; //要过滤的ID低位  
    sFilterConfig.FilterMaskIdHigh = 0; //0xffff;  
    sFilterConfig.FilterMaskIdLow  = 0; //0xffff;  
    sFilterConfig.FilterFIFOAssignment = CAN_FILTER_FIFO0;//过滤器被关联到FIFO0;  
    sFilterConfig.FilterActivation = ENABLE;              //使能过滤器  
    //sFilterConfig.BankNumber = 14;  
    if (HAL_CAN_ConfigFilter(&hcan3, &sFilterConfig) != HAL_OK)
    {
        /* Filter configuration Error */
        Error_Handler();
    }
    /*##-3- Start the CAN peripheral ###########################################*/
    if (HAL_CAN_Start(&hcan3) != HAL_OK)
    {
        /* Start Error */
        Error_Handler();
    }
    /*##-4- Activate CAN RX notification #######################################*/
    if (HAL_CAN_ActivateNotification(&hcan3, CAN_IT_RX_FIFO0_MSG_PENDING) != HAL_OK)
    {
        /* Notification Error */
        Error_Handler();
    }
    Can_sendData(&hcan3);
}

使用特权

评论回复
jiahy| | 2022-12-4 14:00 | 显示全部楼层
你配置的时钟是多少?

使用特权

评论回复
renyaq| | 2022-12-4 14:03 | 显示全部楼层
你的Prescaler 为什么这么弄?

使用特权

评论回复
renyaq| | 2022-12-4 14:04 | 显示全部楼层
你的GPIO是不是设定为fast mode.你怎么确定发送出去了?

使用特权

评论回复
dengdc| | 2022-12-4 14:06 | 显示全部楼层
数据对了吗?

使用特权

评论回复
wyjie| | 2022-12-4 14:08 | 显示全部楼层
接收哪里没设置好吧;

使用特权

评论回复
pengf| | 2022-12-4 14:11 | 显示全部楼层
配置问题,看看那个图形化配置工具可以用不

使用特权

评论回复
SantaBunny| | 2022-12-6 13:08 | 显示全部楼层
配置问题吧,处理好了吗

使用特权

评论回复
tpgf| | 2023-1-5 13:04 | 显示全部楼层
楼主可以先使用回环模式进行调试  然后再使用正常模式

使用特权

评论回复
keaibukelian| | 2023-1-5 13:11 | 显示全部楼层
如何确定发送方已经将数据发送出去了呢 在总线上看到波形了吗

使用特权

评论回复
paotangsan| | 2023-1-5 13:21 | 显示全部楼层
接收端和发送端都需要跨接120欧姆的终端电阻

使用特权

评论回复
renzheshengui| | 2023-1-5 13:39 | 显示全部楼层
可以先使用示波器看一下总线上是不是有符合要求的波形

使用特权

评论回复
wakayi| | 2023-1-5 14:02 | 显示全部楼层
发送方和接收方的波特率配置的是一样的妈

使用特权

评论回复
wowu| | 2023-1-5 14:23 | 显示全部楼层
接收端和发送端的程序是一样的吗 可以把两者调换试试看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

433

主题

7058

帖子

0

粉丝