
在本月初的测试中已经对串口不定长数据的收发进行过测试,接收是通过自定义函数实现的,发送则是通过重定向完成的,测试的结果是串口助手中收到返回的数据不完整。当时并没有对这个问题进行深究,而是准备在驱动了TFT显示屏之后,可以在屏幕上显示接收到的数据,这样就容易判断出问题所在。在原定的测试任务全部完成后,这两天又再次来进行串口不定长数据的收发测试。 本次测试是通TFT显示屏来显示接收到的数据,通过重定向和自定义发送函数分别来返回接收到的数据,这样就容易判断出是那个环节的问题。下面是自定义的串口不定长数据接收和发送函数代码:
通过串口助手发送不定长的数据,然后观察重定向函数和自定义函数返回的数据并进行对比,可以看到问题是出在重定向函数中,也就是说自定义函数返回的数据是完整的,只是重定向函数返回的数据有时会出现截尾的现象: 上张截图重定向函数返回的数据是完整的,但在下张截图中看到的数据是被截尾的: 下面这张截图则更直观: 这是测试过程的照片: 通过本次测试,用自定义函数来发送缓存区的数据,结果的正常。而用重定向函数来发送缓存区的数据则有时会被截尾,数据不完整,原因仍未知。 |
有奖直播 | 超性价比入门级MCU:STM32C0全新子产品线深度解读
【STM32C0测评】Nucleo-C092开发板驱动DS1302实验
【STM32峰会观看直播获奖】晒奖品
STM32C071RB外部中断控制小灯点亮熄灭
STM32C071RB实现串口收发功能
【STM32C071RBT6测评】——PWM输出测试:实现一个呼吸灯
【STM32C0评测】C071:USB的使用
【STM32C0评测】C071:IIC的使用
NUCLEO-C071RB评测6_四种工作模式的功耗测试
【STM32C0评测】GPIO测试:使用外部中断控制小灯点亮熄灭