你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于采用HAL库的Uart 接收超时中断设置问题,请大家帮忙!

[复制链接]
shaodong-350471 提问时间:2016-5-30 13:32 /
在STM32F0xx_StdPeriph_Lib中,是通过USART_ReceiverTimeOutCmd(), USART_SetReceiverTimeOut()等实现,但在新版的STM32F0xx_HAL_Driver中,却找不到是用什么函数设置的了。哪位大侠知道?
收藏 评论4 发布时间:2016-5-30 13:32

举报

4个回答
xmshao 回答时间:2016-5-30 14:54:43
HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t
Timeout
)

HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
shaodong-350471 回答时间:2016-5-30 15:31:49
xmshao 发表于 2016-5-30 14:54
HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t
Timeout)

USART_SetReceiverTimeOut() 与 HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)是两码事,换句话说,我的问题是怎样用HAL库函数设置 <UART接收超时寄存器(USART_RTOR)>。
xmshao 回答时间:2016-5-30 15:44:30
本帖最后由 xmshao 于 2016-5-30 22:12 编辑
shaodong-350471 发表于 2016-5-30 15:31
USART_SetReceiverTimeOut() 与 HAL_UART_Receive(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t ...

oh,误会了。
你是要设置UASRT_RTOR吧。在芯片STM32F0XX.H 头文件里有个宏定义。
#define  USART_RTOR_RTO                      ((uint32_t)0x00FFFFFF)            /*!< Receiver Time Out Value */

stm32f0xx_hal_uart.h

#define UART_RECEIVER_TIMEOUT_DISABLE       ((uint32_t)0x00000000)                  /*!< UART receiver timeout disable */
#define UART_RECEIVER_TIMEOUT_ENABLE        ((uint32_t)USART_CR2_RTOEN)   

lzts 回答时间:2016-5-30 22:43:32
学习了.  这个库没用过. 如果是我就开个定时器(如1mS定时), 定时到给一计数器加1(加到一个较大的数就不加了. 防溢出), 在UART接收中断中给计数器清0, 以后就判断这个计数器就懂是否超时了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版