新定义NBK-RD8x3x核心开发板+5、ESP12F+AT开发 1、NBK-EBS003 IOT扩展板简介
背部一个带AT固件的EPS-12Fwifi模块。
2、电路图
NBK-EBS003 IOT模块可以和NBK-D8x3x完美配合,。
ESP12F RXD0TXDTX0 RD8T36P48
ESP12F TXD0RXDTX0 RD8T36P48
3、ESP12F AT 开发基础教程
以下是一个AT开发的基础教程,帮助你开始使用AT指令进行开发:
- 连接设备:将EPS-12F模块通过串口连接到开发工具。
- 设置波特率:使用开发工具的串口设置功能,将波特率设置为与EPS-12F模块一致的数值(默认为115200)。
- 发送AT指令:通过串口向EPS-12F模块发送AT指令,可以使用开发工具的串口发送功能,或者在开发工具的代码中使用串口发送函数。
- 接收响应:EPS-12F模块会返回对应的响应结果,通过串口接收功能,可以接收到EPS-12F模块返回的响应信息。
- 解析响应:根据AT指令的不同,EPS-12F模块返回的响应格式也不同。需要根据AT指令的文档,解析EPS-12F模块返回的响应信息,获取所需的数据或状态。
- 错误处理:在开发过程中,可能会遇到一些错误情况,如AT指令执行失败、模块无响应等。需要根据EPS-12F模块的错误码和错误信息,进行相应的错误处理。
- 实现功能:根据需求,使用不同的AT指令,实现相应的功能,如网络连接、数据传输、传感器控制等。
- 调试和优化:在开发过程中,可以使用调试工具或者打印调试信息的方式,帮助定位问题和优化代码。
更多信息参考:https://docs.espressif.com/projects/esp-at/zh_CN/release-v2.2.0.0_esp8266/AT_Command_Set/Basic_AT_Commands.html
4、程序
程序参考:https://bbs.21ic.com/icview-3287188-1-1.html
void ESP12_Configure(void)
{
uint8_t Result = 0;
OLED_Clear();
OLED_ShowString(0, 0, "Step:01", 16);
OLED_ShowString(0, 2, "ESP12 Configure", 16);
TimeSliceDelayMS(500);
do
{
TimeSliceDelayMS(10);
Result = ESP12_AT_SendCommand("AT", "OK", 100);
} while (0 == Result);
OLED_Clear();
OLED_ShowString(0, 0, "Step:02", 16);
OLED_ShowString(0, 2, "AT->OK", 16);
TimeSliceDelayMS(500);
/* 开回显 */
ESP12_AT_SendCommand("ATE1", "OK", 100);
OLED_Clear();
OLED_ShowString(0, 0, "Step:03", 16);
OLED_ShowString(0, 2, "ATE1", 16);
TimeSliceDelayMS(500);
/* 查询版本信息 */
ESP12_AT_SendCommand("AT+GMR", "OK", 100);
OLED_Clear();
OLED_ShowString(0, 0, "Step:04", 16);
OLED_ShowString(0, 2, "AT+GMR", 16);
TimeSliceDelayMS(500);
/* 设置当前Wi-Fi模式: Station模式 */
ESP12_AT_SendCommand("AT+CWMODE=1", "OK", 100);
OLED_Clear();
OLED_ShowString(0, 0, "Step:05", 16);
OLED_ShowString(0, 2, "Station Mode", 16);
TimeSliceDelayMS(500);
/* 连接WiFi */
if (ESP12_AT_SendCommand("AT+CWJAP=\"xxss\",\"999999999\"", "OK", 8000) == 0)
{
if (ESP12_AT_SendCommand(NULL, "OK", 8000) == 0)
{
OLED_Clear();
OLED_ShowString(0, 0, "WiFi Connect Error!", 16);
return;
}
}
OLED_Clear();
OLED_ShowString(0, 0, "Step:06", 16);
OLED_ShowString(0, 2, "WiFi Connect OK", 16);
TimeSliceDelayMS(500);
ESP12_InitFlag = 1;
}
这段程序是一个函数`ESP12_Configure`,用于配置ESP12F模块。下面是对程序的详细解释:
- 1. `uint8_t Result = 0;`:定义一个名为`Result`的变量,用于存储函数执行结果。
- 2. `OLED_Clear();`和`OLED_ShowString(0, 0, "Step:01", 16);`:这两行代码用于清除OLED显示屏上的内容,并在第一行显示"Step:01"。这是一个简单的显示操作,用于在OLED上显示当前配置步骤。
- 3. `TimeSliceDelayMS(500);`:这行代码用于延时500毫秒。`TimeSliceDelayMS`函数是一个时间片延时函数,用于在定时器中断中实现延时。
- 4. `do { ... } while (0 == Result);`:这是一个do-while循环,用于重复执行下面的代码,直到`Result`的值不等于0。在循环内部,首先调用`TimeSliceDelayMS(10);`进行10毫秒的延时,然后调用`ESP12_AT_SendCommand`函数发送AT指令"AT",并将返回结果存储在`Result`变量中。这个循环的目的是等待ESP12F模块的响应,直到接收到"OK"为止。
- 5. `OLED_Clear();`和`OLED_ShowString(0, 0, "Step:02", 16);`:这两行代码用于清除OLED显示屏上的内容,并在第一行显示"Step:02"。这是一个简单的显示操作,用于在OLED上显示当前配置步骤。
- 6. `TimeSliceDelayMS(500);`:这行代码用于延时500毫秒。
- 7. `ESP12_AT_SendCommand("ATE1", "OK", 100);`:这行代码调用`ESP12_AT_SendCommand`函数发送AT指令"ATE1",并等待接收到"OK"作为响应。这个指令的作用是开启回显功能。
- 8. `OLED_Clear();`和`OLED_ShowString(0, 0, "Step:03", 16);`:这两行代码用于清除OLED显示屏上的内容,并在第一行显示"Step:03"。这是一个简单的显示操作,用于在OLED上显示当前配置步骤。
- 9. `TimeSliceDelayMS(500);`:这行代码用于延时500毫秒。
- 10. `ESP12_AT_SendCommand("AT+GMR", "OK", 100);`:这行代码调用`ESP12_AT_SendCommand`函数发送AT指令"AT+GMR",并等待接收到"OK"作为响应。这个指令的作用是查询ESP12F模块的版本信息。
- 11. `OLED_Clear();`和`OLED_ShowString(0, 0, "Step:04", 16);`:这两行代码用于清除OLED显示屏上的内容,并在第一行显示"Step:04"。这是一个简单的显示操作,用于在OLED上显示当前配置步骤。
- 12. `TimeSliceDelayMS(500);`:这行代码用于延时500毫秒。
- 13. `ESP12_AT_SendCommand("AT+CWMODE=1", "OK", 100);`:这行代码调用`ESP12_AT_SendCommand`函数发送AT指令"AT+CWMODE=1",并等待接收到"OK"作为响应。这个指令的作用是设置ESP12F模块的Wi-Fi模式为Station模式。
- 14. `OLED_Clear();`和`OLED_ShowString(0, 0, "Step:05", 16);`:这两行代码用于清除OLED显示屏上的内容,并在第一行显示"Step:05"。这是一个简单的显示操作,用于在OLED上显示当前配置步骤。
- 15. `TimeSliceDelayMS(500);`:这行代码用于延时500毫秒。
- 16. `if (ESP12_AT_SendCommand("AT+CWJAP=\"xxss\",\"999999999\"", "OK", 8000) == 0)`:这行代码调用`ESP12_AT_SendCommand`函数发送AT指令"AT+CWJAP=\"xxss\",\"999999999\"",并等待接收到"OK"作为响应。这个指令的作用是连接到Wi-Fi网络。如果连接成功,则继续执行下面的代码;否则,显示"WiFi Connect Error!"并返回。
- 17. `if (ESP12_AT_SendCommand(NULL, "OK", 8000) == 0)`:这行代码调用`ESP12_AT_SendCommand`函数发送一个空指令,只等待接收到"OK"作为响应。这个指令的作用是等待一段时间,以确保Wi-Fi连接成功。如果等待超时,则显示"WiFi Connect Error!"并返回。
- 18. `OLED_Clear();`和`OLED_ShowString(0, 0, "Step:06", 16);`:这两行代码用于清除OLED显示屏上的内容,并在第一行显示"Step:06"。这是一个简单的显示操作,用于在OLED上显示当前配置步骤。
- 19. `TimeSliceDelayMS(500);`:这行代码用于延时500毫秒。
- 20. `ESP12_InitFlag = 1;`:将`ESP12_InitFlag`变量的值设置为1,表示ESP12F模块已经配置完成。
总体来说,这段程序通过发送一系列的AT指令来配置ESP12F模块,包括开启回显、查询版本信息、设置Wi-Fi模式和连接到Wi-Fi网络。在每个配置步骤完成后,会在OLED显示屏上显示当前的配置步骤。
5、实验结果
|
|