打印
[应用相关]

使用hal函数进行uart通讯,接收时总是只能接受第一次数据,一直找不到原因

[复制链接]
1525|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
123782568|  楼主 | 2017-7-8 15:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用hal函数进行uart通讯,接收时总是只能接受第一次数据,一直找不到原因
HAL_UART_Transmit(&huart2,&cmd,1,30);    //cmd传递数据命令
HAL_UART_Receive(&huart2,(uint8_t *)RcvBuff,21,300);   //接收数据21个uint8_t型数据

就这两条命令老是在第一次接受到的数据之后,就不能再接收了。我用示波器看了下,发送没问题的,接收端每次都有信号进来,就是从第二次开始都不出数据。
望各位指导。这个真的很头疼。
沙发
mmuuss586| | 2017-7-8 16:52 | 只看该作者
那只能看寄存器了,看那个寄存器,没使能

使用特权

评论回复
板凳
123782568|  楼主 | 2017-7-8 17:31 | 只看该作者
mmuuss586 发表于 2017-7-8 16:52
那只能看寄存器了,看那个寄存器,没使能

那边发送的数据明明是21个。我在HAL_UART_Receive(&huart2,(uint8_t *)RcvBuff,22,300);要填写22个。真不知道为啥,不过能用了

使用特权

评论回复
地板
study1234| | 2017-7-8 20:48 | 只看该作者
callback里面要写自己的驱动
发送的函数也需要加

event & ARM_USART_EVENT_RECEIVE_COMPLETE

event & ARM_USART_EVENT_SEND_COMPLETE

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

46

帖子

0

粉丝