×
单片机 > 单片机程序设计 > 详情

使用STM32F1xx_HAL库实现CAN通信的问题

发布时间:2020-05-23 发布时间:
|

硬件平台:处理器为STM32F103R8,板子为自设计电路板,数码管显示+CAN通信。


软件开发平台:Keil V5


操作系统:FreeRTOS


问题描述:


使用HAL硬件库实现CAN通信时,CAN中断无法进入,不能够使用中断方式进行数据的接收。CAN的发送是没有问题,寄存器也接收到了响应的数据,就是中断没有被触发。研究了一天没有搞定,现把问题放下,先改用轮训读取的方式实现。


主要的代码如下:


1、接收中断


/**

* @brief  This function handles CAN1 RX0 interrupt request.

* @param  None

* @retval None

*/

void CANx_RX_IRQHandler(void)

{

  HAL_CAN_IRQHandler(&CanHandle);

}


2、中断配置


  /* NVIC configuration for CAN1 Reception complete interrupt */

  HAL_NVIC_SetPriority(CANx_RX_IRQn, 1, 0);

  HAL_NVIC_EnableIRQ(CANx_RX_IRQn);


3、开始接收,使能中断


/*##-2- Start the Reception process and enable reception interrupt #########*/

  if (HAL_CAN_Receive_IT(&CanHandle, CAN_FIFO0) != HAL_OK)

  {

    /* Reception Error */

    Error_Handler();

  }


4、时钟、波特率、滤波、GPIO等的配置

关键字:STM32F1xx  HAL库  CAN通信 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机中断源的扩展方法