打印
[AT32L021]

新定义NBK-RD8x3x核心开发板+5、ESP12F+AT开发

[复制链接]
53|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kevia|  楼主 | 2024-11-17 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kevia 于 2024-11-17 22:40 编辑

新定义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毫秒。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

12

帖子

0

粉丝