完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言:
本节,我们使用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………. %srn", 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………. %srn", 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了。 |
|
|
|
只有小组成员才能发言,加入小组>>
3316 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9060 浏览 16 评论
4088 浏览 18 评论
1180浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 04:54 , Processed in 1.170318 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号