如何使用W7100A实现网络字符LCD(二)

Home / 博客 / 如何使用W7100A实现网络字符LCD(二)

我们接着昨天的博文(如何使用W7100A实现网络字符LCD),把如何使用W7100A实现网络字符LCD的第二部分介绍给大家。

3. 硬件配置

3.1 配置

3.2 字符LCD(Character LCD)连接器和引脚描述

图6显示了字符LCD(Character LCD)接口(JP1)电路。表1列出了字符LCD(Character LCD)各引脚的描述。

4. 固件程序说明

网络字符LCD(Character LCD)工作于TCP服务器模式下。在该模式下,W7100A等待客户端连接请求,并且当与客户端连接之后,与客户端进行数据通信。(更多的详细信息,请参阅‘因特网嵌入式MCU W7100A用户手册9.2.1.1和文档‘如何在W7100A中实现TCP’)。

扩展TCP回路测试(Loopback)的实例代码,这些代码都包含在‘如何在W7100A实现TCP’文档中,它们可用于实现网络字符LCD(Character LCD)。网络字符LCD(Character LCD)的程序流程如图7所示。

4.1 初始化

Socket状态寄存器(Sn_SR)的值是SOCK_ESTABLISHED(0x01),这个值也是软件初始化之后Socket的值。Socket中断寄存器的值是Sn_IR_CON(=0x01),该值表示客户端成功连接到服务器。

-向客户端发送信息: 代码第51-53行和59-61行

-初始化保存data_buf值的tmp_data_buf :代码第44行

-清除字符LCD(character LCD) : 代码第47-48行

-避免初始化进程的重复,清除Sn_IR的值:代码第56行

4.2 接收数据

‘接收读取缓存大小寄存器(Receive Read Buffer Size Register)’ 用来接收字符串,并且字符串的长度必须为16字节,如果接收读取缓存的长度大于16,使用recv()来接收数据(代码65-68)。根据buf_idx(buffer_index)函数,在data_buf中接收到的数据将被复制到tmp_data_buf中。

Tmp_data_buf的大小为17 x32。也就是说它可以保存32个字符串,每个字符串有16个字符和一个Null字符。如果接收成功并且数据保存到tmp_data_buf中,则向客户端(代码84-86)发送一个表示成功的信息。

4.3 显示

滚动tmp_data_buf的源代码如下:使用在字符LCD(Character LCD)驱动源代码lcd.c中定义的evb_set_lcd_text()函数。evb_set_lcd_text()函数的参数是1位(0或者1)和16个字符串。同时,如上面所提到的,tmp_data_buf最多能够保存32列,lcd_scroll()函数用来在2行字符串LCD(Character LCD)中滚动实现所有的字符串。Dis_idx(display_index)用来在2行字符LCD(Character LCD)中滚动实现32个字符串(代码127-128)。

这就是如何使用W7100A实现网络字符LCD的全部内容,希望对大家有所帮助。