在评估板上的流程中,所提供的串口功能基本都是基于printf的使用,缺少对发送功能的介绍。
此外,受程序存储空间的限制要显示一幅满屏的图片是较为困难的,为此做了下面的一些尝试。
1.数据收发测试
为了便于功能测试,这里使用的是板载的USB转TTL芯片CH340N,在使用时需通过CN9为其提供电源支持,并将串口的发送引脚连接到PA9,将串口的接收引脚连接到PA8,其引脚连接见图1所示。
图1 引脚连接
在硬件连接的基础上,使用数据收发处理的主要程序如下:
其中语句USART_GetFlagStatus(CW_UART1,
USART_FLAG_RC)是用来判别是否接收到信息,而语句USART_ReceiveData_8bit(CW_UART1)则是接收一个字节的数据。
语句USART_ClearFlag(CW_UART1,
USART_FLAG_RC)的作用则是清除接收标志,以便后续的接收判别。
语句USART_SendData_8bit(CW_UART1,
a) 的作用则是发送接收到的字节数据,从而来进行分析判别。
经程序的编译和下载,其测试效果如图2所示,即一次发送多个字节数据会显示出接收到的内容。
图2 测试效果
当然在此基础上,也可实现文件内容的发送及保存,见图3和图4所示。
图3 以HEX方式保存
图4以字符方式保存
之所以进行这样的测试,其目的就在于为发送图片数据进行屏幕显示做准备。
2.接收数据显示图像
前面说过,受程序存储空间的限制是无法将图片数据存放到数组中来再现满屏图像内容的。
那该如何来解决这个问题呢?
方法就是通过串行通讯将文本文件中的数据发送给MCU,然后再将接收的数据提供给显示屏来再现图像画面。
以320*240像素点的TFT显示屏为例,其实现图像再现的主要程序为:
经编译和下载,其测试效果如图5和图6所示。
图5 发送文本数据
图6 再现图像内容
此外,使用这种方法也可以实现屏中屏的显示效果,见图7所示。
这样做是不是很简单,当然为了便于更好的使用,还可以将接收的数据转存到W25Q64中,从而构成一个显示图片库。
图7 屏中屏效果
更多回帖