打印
[STM32L4]

帮忙看看问题在哪?

[复制链接]
893|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stm32l432kc+sn65hvd230,接收不到东西

使用特权

评论回复
沙发
zhanghqi| | 2021-2-7 21:54 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
juventus9554|  楼主 | 2021-2-7 21:57 | 只看该作者
230的rs端接100k电阻到地

发送端:
/* CAN1 init function */
static void MX_CAN1_Init(void)
{
        CAN_FilterConfTypeDef  sFilterConfig;
  static CanTxMsgTypeDef        TxMessage;
  static CanRxMsgTypeDef        RxMessage;
        
  hcan1.Instance = CAN1;
        hcan1.pTxMsg = &TxMessage;
  hcan1.pRxMsg = &RxMessage;
        
  hcan1.Init.Prescaler = 8;
  hcan1.Init.Mode = CAN_MODE_NORMAL;
  hcan1.Init.SJW = CAN_SJW_1TQ;
  hcan1.Init.BS1 = CAN_BS1_6TQ;
  hcan1.Init.BS2 = CAN_BS2_3TQ;
  hcan1.Init.TTCM = DISABLE;
  hcan1.Init.ABOM = DISABLE;
  hcan1.Init.AWUM = DISABLE;
  hcan1.Init.NART = DISABLE;
  hcan1.Init.RFLM = DISABLE;
  hcan1.Init.TXFP = DISABLE;
  if (HAL_CAN_Init(&hcan1) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }
          /*##-2- Configure the CAN Filter ###########################################*/
  sFilterConfig.FilterNumber = 0;
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
  sFilterConfig.FilterIdHigh = 0x0000;
  sFilterConfig.FilterIdLow = 0x0000;
  sFilterConfig.FilterMaskIdHigh = 0x0000;
  sFilterConfig.FilterMaskIdLow = 0x0000;
  sFilterConfig.FilterFIFOAssignment = 0;
  sFilterConfig.FilterActivation = ENABLE;
  sFilterConfig.BankNumber = 14;

  if (HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig) != HAL_OK)
  {
    /* Filter configuration Error */
    Error_Handler();
  }

  /*##-3- Configure Transmission process #####################################*/
  hcan1.pTxMsg->StdId = 0x321;
  hcan1.pTxMsg->ExtId = 0x01;
  hcan1.pTxMsg->RTR = CAN_RTR_DATA;
  hcan1.pTxMsg->IDE = CAN_ID_STD;
  hcan1.pTxMsg->DLC = 8;

}
在主函数的whil(1)里
        for(uint8_t ii = 0; ii < 8; ii++)
        {
                hcan1.pTxMsg->Data[ii] = 0xAA;
        }
        HAL_CAN_Transmit(&hcan1,10);

接收端
static void MX_CAN1_Init(void)
{
        CAN_FilterConfTypeDef  sFilterConfig;
  static CanTxMsgTypeDef        TxMessage;
  static CanRxMsgTypeDef        RxMessage;
        
  hcan1.Instance = CAN1;
        hcan1.pTxMsg = &TxMessage;
  hcan1.pRxMsg = &RxMessage;
        
  hcan1.Init.Prescaler = 8;
  hcan1.Init.Mode = CAN_MODE_NORMAL;
  hcan1.Init.SJW = CAN_SJW_1TQ;
  hcan1.Init.BS1 = CAN_BS1_6TQ;
  hcan1.Init.BS2 = CAN_BS2_3TQ;
  hcan1.Init.TTCM = DISABLE;
  hcan1.Init.ABOM = DISABLE;
  hcan1.Init.AWUM = DISABLE;
  hcan1.Init.NART = DISABLE;
  hcan1.Init.RFLM = DISABLE;
  hcan1.Init.TXFP = DISABLE;
  if (HAL_CAN_Init(&hcan1) != HAL_OK)
  {
    _Error_Handler(__FILE__, __LINE__);
  }
          /*##-2- Configure the CAN Filter ###########################################*/
  sFilterConfig.FilterNumber = 0;
  sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
  sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
  sFilterConfig.FilterIdHigh = 0x0000;
  sFilterConfig.FilterIdLow = 0x0000;
  sFilterConfig.FilterMaskIdHigh = 0x0000;
  sFilterConfig.FilterMaskIdLow = 0x0000;
  sFilterConfig.FilterFIFOAssignment = 0;
  sFilterConfig.FilterActivation = ENABLE;
  sFilterConfig.BankNumber = 14;

  if (HAL_CAN_ConfigFilter(&hcan1, &sFilterConfig) != HAL_OK)
  {
    /* Filter configuration Error */
    Error_Handler();
  }

  /*##-3- Configure Transmission process #####################################*/
  hcan1.pTxMsg->StdId = 0x321;
  hcan1.pTxMsg->ExtId = 0x01;
  hcan1.pTxMsg->RTR = CAN_RTR_DATA;
  hcan1.pTxMsg->IDE = CAN_ID_STD;
  hcan1.pTxMsg->DLC = 8;
}

主函数里
        __HAL_CAN_ENABLE_IT(&hcan1,CAN_IT_FF0);
        HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);
        if (HAL_CAN_Receive_IT(&hcan1, CAN_FIFO0) != HAL_OK)
  {
    /* Reception Error */
    Error_Handler();
  }

使用特权

评论回复
地板
yszong| | 2021-2-7 22:00 | 只看该作者
感觉是230有问题

使用特权

评论回复
5
juventus9554|  楼主 | 2021-2-7 22:02 | 只看该作者
用示波器接在230的D,R上能看到信号,但在CANH和CANL上就没有信号了

使用特权

评论回复
6
juventus9554|  楼主 | 2021-2-7 22:06 | 只看该作者

使用特权

评论回复
7
juventus9554|  楼主 | 2021-2-7 22:08 | 只看该作者
230接法如图,漏了什么?

使用特权

评论回复
8
pengf| | 2021-2-7 22:10 | 只看该作者
是不是不匹配 呀

使用特权

评论回复
9
houcs| | 2021-2-7 22:12 | 只看该作者
能看到发送端发出数据了吗

使用特权

评论回复
10
ousj| | 2021-2-7 22:16 | 只看该作者
能看到发送端发出数据了吗

使用特权

评论回复
11
木木guainv| | 2021-3-2 18:54 | 只看该作者
能确认发送数据了吗

使用特权

评论回复
12
磨砂| | 2021-3-2 18:56 | 只看该作者
先排除发送端的问题吧

使用特权

评论回复
13
晓伍| | 2021-3-2 18:58 | 只看该作者
感觉接的没问题啊

使用特权

评论回复
14
八层楼| | 2021-3-2 19:01 | 只看该作者
需要接终端电阻吗

使用特权

评论回复
15
观海| | 2021-3-2 19:02 | 只看该作者
用示波器看看波形

使用特权

评论回复
16
SamYS| | 2021-5-19 16:05 | 只看该作者
可以用回环测试模式,看看能不能收到自己发的数据,跟外部的CAN总线芯片就没关系了。

使用特权

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

本版积分规则

900

主题

12190

帖子

3

粉丝