
在本月初的测试中已经对串口不定长数据的收发进行过测试,接收是通过自定义函数实现的,发送则是通过重定向完成的,测试的结果是串口助手中收到返回的数据不完整。当时并没有对这个问题进行深究,而是准备在驱动了TFT显示屏之后,可以在屏幕上显示接收到的数据,这样就容易判断出问题所在。在原定的测试任务全部完成后,这两天又再次来进行串口不定长数据的收发测试。 本次测试是通TFT显示屏来显示接收到的数据,通过重定向和自定义发送函数分别来返回接收到的数据,这样就容易判断出是那个环节的问题。下面是自定义的串口不定长数据接收和发送函数代码:
通过串口助手发送不定长的数据,然后观察重定向函数和自定义函数返回的数据并进行对比,可以看到问题是出在重定向函数中,也就是说自定义函数返回的数据是完整的,只是重定向函数返回的数据有时会出现截尾的现象: 上张截图重定向函数返回的数据是完整的,但在下张截图中看到的数据是被截尾的: 下面这张截图则更直观: 这是测试过程的照片: 通过本次测试,用自定义函数来发送缓存区的数据,结果的正常。而用重定向函数来发送缓存区的数据则有时会被截尾,数据不完整,原因仍未知。 |
【STM32C0评测】C071:USB的使用
【STM32C0评测】C071:IIC的使用
NUCLEO-C071RB评测6_四种工作模式的功耗测试
【STM32C0评测】GPIO测试:使用外部中断控制小灯点亮熄灭
【STM32C0评测】+NUCLEO-C071 UART测试
NUCLEO-C071RB评测5_I2C通讯测试
【STM32C0评测】C071:加个PWM
NUCLEO-C071RB评测1_GPIO测试
【STM32C0评测】C071:GPIO+定时器+串口
STM32C0评测】C071开箱