RISC-V单片机快速入门07-板载LCD显示ESP8266数据

前言:

本节,我们使用GD32VF103控制ESP-01S启动TCP Server,然后让多个网络调试助手连接ESP-01S并与之通信,并通过LCD显示TCP网络助手发来的数据。

一、基础知识

1.LCD简介

本实验使用的LCD为龙眼开发板板载LCD,是一个0.96英寸的屏,使用ST7735S驱动驱动,硬件引脚说明如下
在这里插入图片描述
本实验最终实现效果如下图:
在这里插入图片描述

图中设置中文显示需要使用字库软件设置,本实验采用字模Ⅲ这款字库软件,已经连同代码推送到云端,可以下载后使用。

2.字库软件安装

字模Ⅲ安装也比较简单,点击Zimo3InstallFULL.exe,一直下一步默认安装即可,破解使用fontreg.exe工具
在这里插入图片描述
打开后,按照下图步骤进行注册即可。
在这里插入图片描述
注册成功后如下图所示

二、实例

2.1 制作字符

打开上文注册号的字模Ⅲ软件,按如下方式设置字体大小以及字符集格式
在这里插入图片描述
设置生成的字模格式如下
在这里插入图片描述
常规设置如下
在这里插入图片描述
输入要转换的字符串,点击字库智能生成按钮
在这里插入图片描述
将生成的字库复制到打开的工程oledfont.h文件中
在这里插入图片描述
同理导出"接收"两个汉字,设置大小为16*16,不在演示步骤。

2.2 驱动程序说明

gd32vf103单片机使用spi接口驱动LCD,硬件连接如下:
在这里插入图片描述

SPI初始化

void spi_config(void)
{
    spi_parameter_struct spi_init_struct;
    /* deinitilize SPI and the parameters /
    OLED_CS_Set();
    spi_struct_para_init(&spi_init_struct);
    / SPI0 parameter config */
    spi_init_struct.trans_mode           = SPI_TRANSMODE_FULLDUPLEX;
    spi_init_struct.device_mode          = SPI_MASTER;
    spi_init_struct.frame_size           = SPI_FRAMESIZE_8BIT;
    spi_init_struct.clock_polarity_phase = SPI_CK_PL_HIGH_PH_2EDGE;
    spi_init_struct.nss                  = SPI_NSS_SOFT;
    spi_init_struct.prescale             = SPI_PSC_8;
    spi_init_struct.endian               = SPI_ENDIAN_MSB;
    spi_init(SPI0, &spi_init_struct);
    spi_crc_polynomial_set(SPI0,7);
    spi_enable(SPI0);
}

LCD写数据函数

/*
       Function description: LCD serial data write function
       Entry data: serial data to be written to dat
       Return value: None
*/
void LCD_Writ_Bus(u8 dat)
{
    OLED_CS_Clr();
    while(RESET == spi_i2s_flag_get(SPI0, SPI_FLAG_TBE));
        spi_i2s_data_transmit(SPI0, dat);
    while(RESET == spi_i2s_flag_get(SPI0, SPI_FLAG_RBNE));
        spi_i2s_data_receive(SPI0);
    OLED_CS_Set();
}

2.3 程序主函数逻辑

增加处理代码,区分是不是http数据,如果是普通TCP数据,直接返回

while(1)
{
    if (STA_DATA_ARRIVED == system_context->event)
    {
        // send back
//            ESP8266_SendString ( DISABLE, system_context->data_buf, rt_strlen(system_context->data_buf), system_context->sock_id );
            if (rt_strstr(system_context->data_buf, "/getdata"))
            {
                rt_kprintf("ready to send data………. %s\r\n", response);
                ESP8266_SendString ( DISABLE, response, rt_strlen(response), system_context->sock_id );
                system_context->event = STA_CONNECTED;
            }else if(rt_strstr(system_context->data_buf, "/index"))
            {
                rt_kprintf("ready to send data………. %s\r\n", response_index);
                ESP8266_SendString ( DISABLE, response_index, rt_strlen(response_index), system_context->sock_id );
                system_context->event = STA_CONNECTED;
            }else
            {
//                 send back
                ESP8266_SendString ( DISABLE, system_context->data_buf, rt_strlen(system_context->data_buf), system_context->sock_id );
                LCD_ShowString(24 + 48, 40, (u8 *)(system_context->data_buf), RED);
            }
        }
        rt_thread_mdelay(10);
    }

三、运行

下载程序完毕后,重启设备,ESP01S启动一个WIFI热点,并启动TCP Server,log如下:
在这里插入图片描述
电脑连接模块热点,然后启动网路助手,连接模块起来的AP热点,发送111,会受到返回的数据111
在这里插入图片描述
LCD显示如下:
在这里插入图片描述
灯光效果不好,手机太渣,大家将就着看哈,功能是OK了。

四、结语

如您在使用过程中有任何问题,请加QQ群进一步交流。

QQ交流群:906015840 (备注:物联网项目交流)

资料获取:关注下方公众号,回复risc-v即可
在这里插入图片描述
一叶孤沙出品:一沙一世界,一叶一菩提

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值