yyq006 发表于 2017-4-26 10:35:47

关于HAL库的问题

在串口中断里下面这句起什么作用,刚接触,可能问的比较白痴 ,还请各位大佬不吝赐教。
HAL_UART_IRQHandler(&huart1);
还有,我想在串口中断里单个字节接收数据,然后自己处理组合字符串,但在HAL库里没找到单个字节接收的函数,只有下面这个2个接收多字节的,应该怎么用
HAL_UART_Receive
HAL_UART_Receive_IT


LIUBEIHUA 发表于 2017-4-26 11:08:17

通过回调函数处理
HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart1)

奏奏奏 发表于 2017-4-26 11:27:59

本帖最后由 奏奏奏 于 2017-4-26 11:41 编辑

请参考这个例程:
标题是:使用STM32CubeMX实现中断模式下的串口收发
链接地址是:https://wenku.baidu.com/view/c0310a8b227916888586d77e.html

zhao.zhao 发表于 2017-4-26 11:29:46

第一句是串口发送接收中断入口函数;
第二句是串口接收中断的一次调用,一般这句用户不用关心,系统做好了,系统自己会直接调用的;
第三句是设置串口X接收的数据存放位置及接收多少个数据产生一次接收中断

海迹天涯 发表于 2017-4-26 13:58:43

自己在中断函数里面写寄存器:lol

yyq006 发表于 2017-4-26 14:08:23

LIUBEIHUA 发表于 2017-4-26 11:08
通过回调函数处理
HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart1)

回调函数是接收中断发生后自动执行的吗?

yyq006 发表于 2017-4-26 14:12:21

奏奏奏 发表于 2017-4-26 11:27
请参考这个例程:
标题是:使用STM32CubeMX实现中断模式下的串口收发
链接地址是:https://wenku.baidu.com ...

我看了一下,这句
if(HAL_UART_Receive_IT(&huart5,aRxBuffer,1)!=HAL_OK)Error_Handler();开启接收中断
提示Error_Handler()是无效的,是怎么回事

LIUBEIHUA 发表于 2017-4-26 14:39:08

STM32F030 C8 UARt1

yyq006 发表于 2017-4-26 16:10:45

LIUBEIHUA 发表于 2017-4-26 14:39
STM32F030 C8 UARt1

我看了您的程序,是在主循环里查询串口状态,好像没有用中断接收啊

奏奏奏 发表于 2017-4-26 18:14:21

yyq006 发表于 2017-4-26 14:12
我看了一下,这句
if(HAL_UART_Receive_IT(&huart5,aRxBuffer,1)!=HAL_OK)Error_Handler();开启接收中断
...

我在项目中只用了他接收部分的
发送部分的我没有使用,所以不知道你说的这个问题
页: [1] 2
查看完整版本: 关于HAL库的问题