OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5319|回复: 3

请问使用HAL库串口中断,为什么总会发生帧错误?

[复制链接]

4

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2015-3-1
在线时间
4 小时
发表于 2017-3-1 10:39:11 | 显示全部楼层 |阅读模式
1金钱
波特率等参数的配置没有问题,但每次32收数据的时候都会有问题,单步调试后发现进入void HAL_UART_IRQHandler(UART_HandleTypeDef *huart)函数后会有frame error,如图所示,会执行标记部分的程序,请问这可能是什么原因导致的?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2015-3-1
在线时间
4 小时
 楼主| 发表于 2017-3-1 10:43:37 | 显示全部楼层
额,图片发不上去。是执行if中这部分程序
tmp1 = __HAL_UART_GET_FLAG(huart, UART_FLAG_FE);
  tmp2 = __HAL_UART_GET_IT_SOURCE(huart, UART_IT_ERR);
  /* UART frame error interrupt occurred -------------------------------------*/
  if((tmp1 != RESET) && (tmp2 != RESET))
  {
    __HAL_UART_CLEAR_FEFLAG(huart);
   
    huart->ErrorCode |= HAL_UART_ERROR_FE;
  }
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-3-1 22:21:54 | 显示全部楼层
参考下我们的例程看看吧
回复

使用道具 举报

86

主题

567

帖子

0

精华

高级会员

Rank: 4

积分
825
金钱
825
注册时间
2014-9-30
在线时间
139 小时
发表于 2017-3-2 00:01:14 | 显示全部楼层
amazing_liu 发表于 2017-3-1 10:43
额,图片发不上去。是执行if中这部分程序
tmp1 = __HAL_UART_GET_FLAG(huart, UART_FLAG_FE);
  tmp2 =  ...

HAL 库,把 中断的优势 全搞没了。。

很频繁 发生 帧错误,,肯定是 你程序

里面,别处 处理 高优先 耽误 太久了。

把 该串口的 中断优先级别 【尽可能】的提到 最高。吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 08:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表