打印
[STM32F7]

能发送,接收不到

[复制链接]
392|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stly|  楼主 | 2020-11-4 22:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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);
}

使用特权

评论回复
沙发
juventus9554| | 2020-11-4 22:15 | 只看该作者
你配置的时钟是多少?

使用特权

评论回复
板凳
juventus9554| | 2020-11-4 22:18 | 只看该作者
你的Prescaler 为什么这么弄?

使用特权

评论回复
地板
supernan| | 2020-11-4 22:22 | 只看该作者
你的GPIO是不是设定为fast mode.你怎么确定发送出去了?

使用特权

评论回复
5
xxrs| | 2020-11-4 22:27 | 只看该作者
数据对了吗?

使用特权

评论回复
6
chenjunt| | 2020-11-4 22:31 | 只看该作者
接收哪里没设置好吧;

使用特权

评论回复
7
kangzj| | 2020-11-4 22:34 | 只看该作者
配置问题,看看那个图形化配置工具可以用不

使用特权

评论回复
8
stly|  楼主 | 2020-11-4 22:37 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

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

本版积分规则

433

主题

7058

帖子

0

粉丝