查看FR8016HA_Dev_V1.3开发板原理图.pdf 可以知道WiFi模块连接Uart1 下面是Rx与Tx的引脚PD4 和PD5
我的硬件版本是V1.3,LCD与1.4有不同,要在lcd.c内
---display
-------lcd.c
注释#define DEV_V_1_4 (1) //FR8016H DEV1.4
//#define DEV_V_1_4 (1) //FR8016H DEV1.4
复制代码void esp8266_init(){<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>system_set_port_pull(GPIO_PD4,true); <span style="white-space:pre"> </span>system_set_port_mux(GPIO_PORT_D,GPIO_BIT_4,PORTD4_FUNC_UART1_RXD); <span style="white-space:pre"> </span>system_set_port_mux(GPIO_PORT_D,GPIO_BIT_5,PORTD5_FUNC_UART1_TXD); <span style="white-space:pre"> </span>uart_init(UART1,BAUD_RATE_115200); <span style="white-space:pre"> </span>NVIC_EnableIRQ(UART1_IRQn); };
复制代码bool esp8266_sendCmd(char *cmd, char *reply, uint16_t wait){ rxFram.length = 0; //Çå¿ÕÊý¾ÝÖ¡£¬ÖØнÓÊÕ uart1_printf("%s\r\n", cmd); if(reply == 0) return true; <span style="white-space:pre"> </span>uart1_read((uint8_t *)rxFram.rxbuffer,UART1_RX_MAX_LEN,read_callback()); return ((bool) strstr(rxFram.rxbuffer,reply)); } //uart1发送 void uart1_printf(char* fmt,...) { char buffer[UART1_BUFFER_LEN+1]; <span style="white-space:pre"> </span>uint16_t size; <span style="white-space:pre"> </span>va_list ap; <span style="white-space:pre"> </span>va_start(ap, fmt); <span style="white-space:pre"> </span>vsprintf((char*)buffer, fmt, ap); <span style="white-space:pre"> </span>va_end(ap); <span style="white-space:pre"> </span>size = strlen((const char*)buffer);<span style="white-space:pre"> </span> <span style="white-space:pre"> </span>uart_put_data_noint(UART1,(const uint8_t*)buffer,size); } <span style="white-space:pre"> </span>uart_int_callback read_callback() { <span style="white-space:pre"> </span>co_printf("%s\n",rxFram.rxbuffer); };
复制代码bool esp8266_modeChoose(ESP8266_ModeEnumDef mode){ switch(mode) { case STA: return esp8266_sendCmd("AT+CWMODE=1", "OK", 1500); case AP: return esp8266_sendCmd("AT+CWMODE=2", "OK", 1500); case STA_AP: return esp8266_sendCmd("AT+CWMODE=3", "OK", 1500); default: return false; } }
复制代码bool esp8266_buildAP(char * pSSID, char * pPwd, ESP8266_ApPwdModeEnumDef pwdMode){ char cmd[120]; uart1_printf("AT+CWSAP="%s","%s",1,%d\n",pSSID, pPwd, pwdMode); return esp8266_sendCmd(cmd, "OK", 1000); }
复制代码之后在一处任务场景添加
esp8266_modeChoose(AP);
esp8266_buildAP(ESP8266_BUILD_AP_SSID,ESP8266_BUILD_AP_PWD,ESP8266_BUILD_AP_ECN);
之后能成功看到名为ESP8266的WIFI啦
好像我没有完成接受功能 我怀疑是我的wifi模块坏了 我换个新模块下次再试
总结:这个lcd屏的设计很棒啊
例程少了,SDK文档的提示也不多,遇到一些新操作的时候就看不懂了。
总之感谢官方