有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 皋陶 于 2020-8-28 17:15 编辑
RISC-V单片机快速入门01-开发环境搭建
RISC-V单片机快速入门02-移植RT_Thread Nano
RISC-V单片机快速入门03-基于RT_Thread Nano添加控制台
RISC-V单片机快速入门04-基于RT_Thread Nano添加FinSH
RISC-V单片机快速入门05-串口助手发送AT指令启动TCP Server
RISC-V单片机快速入门06-控制ESP8266启动Http Server
RISC-V单片机快速入门07-板载LCD显示ESP8266数据
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了。
四、结语一叶孤沙出品:一沙一世界,一叶一菩提
|