搜索
bottom↓
回复: 2

大神们问一下阿波罗F429的uart例程的中断函数问题

[复制链接]

出0入0汤圆

发表于 2018-6-7 10:46:01 | 显示全部楼层 |阅读模式
习惯了F103的标准库,所以看HAL库的时候总有很多疑问。
  我的问题是在中断函数里面没有看到类似于标准库里面的清中断标志的动作,是清中断动作被隐藏在哪里了吗,还是不需要清中断了。
大神们指点一下。

  1. void USART1_IRQHandler(void)                       
  2. {
  3.         u32 timeout=0;
  4. #if SYSTEM_SUPPORT_OS                 //使用OS
  5.         OSIntEnter();   
  6. #endif
  7.        
  8.         HAL_UART_IRQHandler(&UART1_Handler);        //调用HAL库中断处理公用函数
  9.        
  10.         timeout=0;
  11.     while (HAL_UART_GetState(&UART1_Handler) != HAL_UART_STATE_READY)//等待就绪
  12.         {
  13.          timeout++;////超时处理
  14.      if(timeout>HAL_MAX_DELAY) break;               
  15.         }
  16.      
  17.         timeout=0;
  18.         while(HAL_UART_Receive_IT(&UART1_Handler, (u8 *)aRxBuffer, RXBUFFERSIZE) != HAL_OK)//一次处理完成之后,重新开启中断并设置RxXferCount为1
  19.         {
  20.          timeout++; //超时处理
  21.          if(timeout>HAL_MAX_DELAY) break;       
  22.         }
  23. #if SYSTEM_SUPPORT_OS                 //使用OS
  24.         OSIntExit();                                                                                           
  25. #endif
  26. }
  27. #endif       
复制代码

出0入234汤圆

发表于 2018-6-7 11:41:05 | 显示全部楼层
串口读DR就可以清接收非空标志的。所以读DR实际上相当于把中断标志清了。

出0入0汤圆

 楼主| 发表于 2018-6-7 13:53:56 | 显示全部楼层
正点原子 发表于 2018-6-7 11:41
串口读DR就可以清接收非空标志的。所以读DR实际上相当于把中断标志清了。

这个好像和F103的时候不大一样,所以一直在找这个清中断部分,没找到。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 11:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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