硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2247|回复: 3
收起左侧

[STM32CubeF4] 请教这两个定义的区别,hal的关于串口的

[复制链接]

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2019-8-16 15:18:35 | 显示全部楼层 |阅读模式
本帖最后由 caicaptain2 于 2019-8-16 15:20 编辑

下面2个的结果执行的不一样,有什么区别?

__HAL_UART_GET_IT_SOURCE(&huart2UART_IT_RXNE);     与   __HAL_UART_GET_FLAG(&huart2,UART_FLAG_RXNE);

我需要用它们来判断当前的中断是否接收中断。 第一个失败,第二个成功。为什么?



-----------以下是hal中的定义--------------
  1. /** @brief  Checks whether the specified UART interrupt has occurred or not.

  2.   * @param  __HANDLE__ specifies the UART Handle.
  3.   *         UART Handle selects the USARTx or UARTy peripheral
  4.   *         (USART,UART availability and x,y values depending on device).
  5.   * @param  __IT__ specifies the UART interrupt source to check.
  6.   *          This parameter can be one of the following values:
  7.   *            @arg UART_IT_CTS: CTS change interrupt (not available for UART4 and UART5)
  8.   *            @arg UART_IT_LBD: LIN Break detection interrupt
  9.   *            @arg UART_IT_TXE: Transmit Data Register empty interrupt
  10.   *            @arg UART_IT_TC:  Transmission complete interrupt
  11.   *            @arg UART_IT_RXNE: Receive Data register not empty interrupt
  12.   *            @arg UART_IT_IDLE: Idle line detection interrupt
  13.   *            @arg UART_IT_ERR: Error interrupt
  14.   * @retval The new state of __IT__ (TRUE or FALSE).
  15.   */
  16. #define __HAL_UART_GET_IT_SOURCE(__HANDLE__, __IT__) (((((__IT__) >> 28U) == UART_CR1_REG_INDEX)? (__HANDLE__)->Instance->CR1:(((((uint32_t)(__IT__)) >> 28U) == UART_CR2_REG_INDEX)? \
  17.                                                       (__HANDLE__)->Instance->CR2 : (__HANDLE__)->Instance->CR3)) & (((uint32_t)(__IT__)) & UART_IT_MASK))

  18. #define __HAL_UART_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
复制代码




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2019-8-16 15:56:07 | 显示全部楼层
第1个是判断是否使能了相应的中断
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
 楼主| 发表于 2019-8-16 16:49:16 | 显示全部楼层
eric2013 发表于 2019-8-16 15:56
第1个是判断是否使能了相应的中断

感谢!
看它的英文说明,我以为是查询的是哪个中断源。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2019-8-16 16:54:48 | 显示全部楼层
caicaptain2 发表于 2019-8-16 16:49
感谢!
看它的英文说明,我以为是查询的是哪个中断源。。。

函数的注释写的不好。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 23:32 , Processed in 0.232923 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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