打印
[STM32F4]

HAL库串口接收中断问题

[复制链接]
5368|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
MasterSU|  楼主 | 2016-8-18 12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近换了ST的HAL库,在使用串口中断遇到了些问题  我的大致配置流程是这样的void MX_USART2_UART_Init(void)
{

  huart2.Instance = USART2;
  huart2.Init.BaudRate = 115200;
  huart2.Init.WordLength = UART_WORDLENGTH_8B;
  huart2.Init.StopBits = UART_STOPBITS_1;
  huart2.Init.Parity = UART_PARITY_NONE;
  huart2.Init.Mode = UART_MODE_TX_RX;
  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  if (HAL_UART_Init(&huart2) != HAL_OK)
  {
    Error_Handler();
  }
        while(HAL_UART_Receive_IT(&huart2, &rxbuffer, 1) != HAL_OK);
        //__HAL_UART_ENABLE_IT(&huart2,UART_IT_RXNE);
}   这里是初始化串口2 然后开接收中断


void USART2_IRQHandler(void)
{

        HAL_UART_IRQHandler(&huart2);
        copy_IMU_data(rxbuffer);
        while (HAL_UART_GetState(&huart2) != HAL_UART_STATE_READY);
        //while(HAL_UART_Receive_IT(&huart2, &rxbuffer, 1) != HAL_OK);
       

}  这是串口2的中断处理 下面那句HAL_UART_Receive_IT我注调是因为发现如果执行了这句话他就一直在USART2_IRQHandler中出不去了

copy_IMU_data就是一个数据的复制 把接收到的一个字节复制到结构体内

运行后发现第一次进中断并跳出以后,程序就会跳到HardFault_Handler中去。。。
沙发
MasterSU|  楼主 | 2016-8-18 19:54 | 只看该作者
自顶

使用特权

评论回复
板凳
gejigeji521| | 2016-8-18 20:54 | 只看该作者
是一直接收到数据产生中断了跳不出去,还是你没用清理中断标志

使用特权

评论回复
地板
mmuuss586| | 2016-8-18 22:59 | 只看该作者
清下中断标志位看看

使用特权

评论回复
5
MasterSU|  楼主 | 2016-8-18 23:56 | 只看该作者
gejigeji521 发表于 2016-8-18 20:54
是一直接收到数据产生中断了跳不出去,还是你没用清理中断标志

接收到中断了也跳出去了,可第二次进去的时候他就调到HardFault_Handler 中去了

使用特权

评论回复
6
MasterSU|  楼主 | 2016-8-19 00:00 | 只看该作者
mmuuss586 发表于 2016-8-18 22:59
清下中断标志位看看

用的是库函数,函数内已经处理过了

使用特权

评论回复
7
Bjorn| | 2016-8-19 10:05 | 只看该作者
中断标志位需不需要清除

使用特权

评论回复
8
MasterSU|  楼主 | 2016-8-19 18:48 | 只看该作者
Bjorn 发表于 2016-8-19 10:05
中断标志位需不需要清除

不与要 不过参考手册上说了可以软件清除,我也试过了没有用  用的是F4的片子

使用特权

评论回复
9
643757107| | 2016-8-19 21:28 | 只看该作者
应该是自动清除的,好久没用这个了,以前都是用标准库来做的。

使用特权

评论回复
10
MasterSU|  楼主 | 2016-8-19 22:15 | 只看该作者
643757107 发表于 2016-8-19 21:28
应该是自动清除的,好久没用这个了,以前都是用标准库来做的。

我也试用的ST的官方库只不过是新出的HAL库所以可能使用上还不太熟悉

使用特权

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

本版积分规则

10

主题

44

帖子

1

粉丝