完整的S32K144的学习汇总如下:
https://github.com/GreyZhang/g_s32k144
继续S32K144的学习,还是针对串口。前面,在实现了基础的收发功能的时候,发现有时候会出现接收的数据丢失的问题。针对这个问题,首先查看了SDK是否还有其他的相关配置项,确认这个没有之后,应该就是接口使用的问题了。继续找接口,发现了如下接口:
与之前使用的接口相比,这个是一个阻塞式的方式。什么是阻塞式的方式呢?之前我觉得看到这种类似的描述的时候也有点没头脑,但是前一阵子我学习FreeRTOS,看相关的文档以及例子的时候似乎有点明白了。阻塞式的方式,其实就是一个持续等待确认的方式,知道成功才会退出。当然,一般来说,都有一个超时的限制。包括我们上面的这个接口,其实也有相应的参数设计。这样,我们修改原来的测试代码如下:
首先测试功能的可用性:
成功收到12345。
成功收到hello。看得出,功能可用。接下来,我做了多次重复性发送测试,都被成功接收到。看起来,之前的稳定性、可靠性问题得到了解决。需要补充说明的是,这种模式需要在中断收发的模式下使用。同时,还有一点,分析一下代码的话,可以看得出,使用这个接口的时候会消耗一定的CPU负荷率用于等待。似乎,这也不是一个很好的解决方案。是否有单纯的查询方式,后面可以继续探索。
完整的S32K144的学习汇总如下: