本帖最后由 suncat0504 于 2023-4-2 12:24 编辑
#申请原创#
SWM341集成了全速2.0USB模块, 支持全速(12 Mbps)和低速(1.5 Mbps)传输。
因此可以用来读写U盘接口,开发板提供U盘接口插座。如下图所示:
图一、U盘接口插座以及测试时UART0的接线图
可以利用厂家提供的MSC_BOT例程(SWM341_Lib\USBH\MSC_BOT目录下)测试U盘接口。这个例程就是在检测到U盘后,在U盘上建立一个名为test.txt的文件,写入指定的字符串。实测后,例程正常可用,在盘上正确建立test.txt文件。在测试时,使用的是串口打印调试信息,因为想使用固定的一个端口,所以需要在烧写程序和运行程序时,即使切换串口的跳线连接。图一中标明UART0的,就是运行要用到的串口。
在我的设计中,把一个个菜谱以文件形式保存在U盘中。通过交互设备实现选择菜谱文件并在屏幕上显示菜谱内容。之前是打算用板上的SD卡上的读写设备来实现的,但是在测试的时候,这个设备总是返回“设备未准备好”的信息,所以就放弃SD卡,改用U盘了。菜谱的文件名为caipu.txt,内容为菜谱的制作方法。目前还是以纯文本的模式处理,内容中过包括汉字。为了实现汉字的统一处理,以ANSI方式保存文件,每个汉字都保存为两个字节的数据,汉字编码与GBK编码保持一致。如果编码不一致,会导致显示的时候出现乱码情况。这一点需要在制作菜谱文件的时候要注意。显示方面,由于涉及到汉字字库的问题,打算使用带有汉字字库的LCD显示屏。开发板附带的显示屏因为不没有汉字字库的原因,暂时被放弃。
看下开发板提供J8排针情况:
外接自己的LCD屏幕,使用带字库的256*96的单色屏,I2C接口,用到的接口信号为:SCK(时钟)、SDA(数据)、CS(片选)、RESET(复位)、RS(命令/数据选择),ROM_IN/ROM_OUT/ROM_SCK/ROM_CS这四个信号是和访问LCD板子上和字库芯片有关的引脚,主要用来获取汉字对应的点阵数据,方便在LCD上显示出来。
连接到华芯微特开发板SWM341,需要占用开发板的一些GPIO口。
按照以下连接测试:
A7--------Rom_IN 字库 IC 接口定义:Rom_IN
A6--------Rom_OUT 字库 IC 接口定义:Rom_OUT
A3--------Rom_SCK 字库 IC 接口定义:Rom_SCK
B13--------Rom_CS 字库 IC 接口定义 Rom_CS
A5--------LCD_RST RST复位
A2--------LCD_SDA 串行数据
A0--------LCD_SCL 串行时钟
之后开始编程调试。代码完成后,进入测试前,需要准备个U盘,在其中做好caipu.txt文件,内容如下:
然后把U盘插到开发板的USB口。编译好的代码下载到开发板中,复位,开始测试。测试结果如下:
调试中发现一些问题。在没有使用LCD屏时,处理很快,串口输出信息也正常。
等到加入LCD的初始化后,LCD的显示处理动作很慢,包括清屏和显示信息,肉眼可见的逐行、逐列的处理,这是以前没见过的现象,而且串口输出的信息,也出现乱码。无法理解是什么原因。期待在后续处理时能改善。
|