288_阻塞式收发提高串口的可靠性

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

继续S32K144的学习,还是针对串口。前面,在实现了基础的收发功能的时候,发现有时候会出现接收的数据丢失的问题。针对这个问题,首先查看了SDK是否还有其他的相关配置项,确认这个没有之后,应该就是接口使用的问题了。继续找接口,发现了如下接口:

与之前使用的接口相比,这个是一个阻塞式的方式。什么是阻塞式的方式呢?之前我觉得看到这种类似的描述的时候也有点没头脑,但是前一阵子我学习FreeRTOS,看相关的文档以及例子的时候似乎有点明白了。阻塞式的方式,其实就是一个持续等待确认的方式,知道成功才会退出。当然,一般来说,都有一个超时的限制。包括我们上面的这个接口,其实也有相应的参数设计。这样,我们修改原来的测试代码如下:

首先测试功能的可用性:

成功收到12345。

成功收到hello。看得出,功能可用。接下来,我做了多次重复性发送测试,都被成功接收到。看起来,之前的稳定性、可靠性问题得到了解决。需要补充说明的是,这种模式需要在中断收发的模式下使用。同时,还有一点,分析一下代码的话,可以看得出,使用这个接口的时候会消耗一定的CPU负荷率用于等待。似乎,这也不是一个很好的解决方案。是否有单纯的查询方式,后面可以继续探索。

完整的S32K144的学习汇总如下:

https://github.com/GreyZhang/g_s32k144

发布了890 篇原创文章 · 获赞 170 · 访问量 176万+

猜你喜欢

转载自blog.csdn.net/grey_csdn/article/details/104579539