嵌入式技术william hill官网
直播中

贾虎世

7年用户 1692经验值
私信 关注
[问答]

关于rt_device_set_rx_indicate函数的使用方法

我在使用RTT系统测试中,使用了rt_device_set_rx_indicate函数,期望串口在有数据到达时取得数据,并根据数据的内容决定处理方法,但在实际使用中,似乎是每个字节都进一次回调函数,这样我在回调函数中使用rt_device_read就没有了意义,因为每次都只能取到一个字符,不知道是我的配置有问题还是方法有问题?谢谢帮助。

回帖(3)

ss

2022-4-6 18:19:29
这个需要看你的串口是否支持fifo方式,如果有fifo的话可以等接收fifo满,产生中断之后,再使用rt_device_set_rx_indicate告知上层,这样就能避免一次只读一个字节了。
举报

贾虎世

2022-4-6 18:19:46
我用的是STM32的串口,没有FIFO的功能,这样说来,在STM32上这个callback函数是不是就没有什么用了呢?那我从串口发送完指令后,岂不是要不断的查询是否有字符返回?
举报

ss

2022-4-6 18:19:57
如果串口有不断数据到达,可以专门用一个线程来接收串口到达的数据。当串口有数据到达时,rt_device_set_rx_indicate就可以去激活该线程去接受数据了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分