设置 HC-12 通讯模块参数设置

HC12通讯模块的AT命令

 

01 HC-12设置通道


一、前言

  这款 HC-12通讯模块, 可以通过 AT 命令;对其通讯参数进行设置。  包括通讯频道, 通讯模式以及发送功率等。  根据该 通讯模块的规格书 , 测试一下相应的 AT 命令。  查看设置之后的结果。  利用频谱仪测试修改后 HC12 模块通讯的特性。

GM1702373716_1280_720.MPG|_-5

二、设置频道

  在HC12规格书中, 给出了通讯频道修改 AT 命令格式。   在 AT之后 加上 通道参数。  开始的频率为 433.4MHz, 之后每增加一个频道, 通讯频率增加 400kHz。 第 100 通道, 对应通讯频率为 473MHz。  通道数是从 1 开始。 没有 0通道。  在发送AT命令之前, 需要将 模块的 SET 管脚拉低,  然后等待至少 50ms 以上,  发送 AT 命令。  命令不需要任何结束符。  执行完之后, 再将 SET 管脚置高, 模块进入工作状态。  下面测试一下设置命令。

GM1702374131_1280_720.MPG|_-10

  在频谱仪上增加一个拉杆天线, 可以测量到HC-12发送信号的频谱。 让 HC12连续发送数据, 它所使用的通讯频道便可以通过频谱对应的频率看到。  这是频道1 对应的频谱。  下面通过单片机界面发送 AT 命令。 频谱仪检测到不同的频谱。   通讯频道最大为 127.  HC12 可以工作在不同的频段。
GM1702375315_1280_720.MPG|_-6

▲ 图1.2.1  通道1对应的接收到的频谱

▲ 图1.2.1 通道1对应的接收到的频谱

三、设置功率

  可以通过 AT 命令设置 HC12的发射功率。  发射功率共有 8 个等级, 从 -1dBm, 到 20dBm。  功率每下降6dB, 通讯距离减少一半。  下面测试功率设置命令的作用。

GM1702375468_1280_720.MPG|_-4
  设置功率为 第一等级。  此时接收到的频谱变小了 。  设置功率等级为 8。   可以看到频谱峰值增加了。

GM1702375747_1280_720.MPG|_-4

//==============================================================================
//                    PROCESS THE DEBUG BUFFER
//------------------------------------------------------------------------------
void SerialDebugProcessBuffer(void) {
    SerialDebugBuffer2Argument();
    if(g_ucSDANumber == 0) return;

    if(strcmp("hello",                (char *)STD_ARG[0]) == 0)
        printf("%s is ready !\r\n", VERSION_STRING);
    else IFARG0("send") {
        int nLength = strlen(SDA(1));
        int i;
        char * p = SDA(1);
        for(i = 0; i < nLength; i ++) UART2SendChar(*(p+i));
        
    } else IFARG0("set") {
        if(strcmp(SDA(1), "enter") == 0) {
            HC12EnterSetMode();
            printf("Enter Set Mode.\r\n");
        } else if(strcmp(SDA(1), "exit") == 0) {
            HC12ExitSetMode();
            printf("Exit set mode.\r\n");
        } else printf("Set Error?\r\n");
    } else IFARG0("at") {
        int nLength = strlen(SDA(1));
        int i;
        char * p = SDA(1);
        for(i = 0; i < nLength; i ++)
            UART2SendChar(*(p++));

//        UART2SendChar('\r');
        printf("Send AT command:%s\r\n", SDA(1));
    } else IFARG0("c") {
        HC12EnterSetMode();
        WaitTime(50);
        char szString[32];
        int nNumber = 0;
        sscanf(SDA(1), "%d", &nNumber);
        sprintf(szString, "AT+C%03d", nNumber);
        int nLength = strlen(szString);
        int i;
        for(i = 0; i < nLength; i ++)
            UART2SendChar(szString[i]);
        
        HC12ExitSetMode();
        
        printf("%s", szString);
        printf("\r\n");
    } else IFARG0("p") {
        HC12EnterSetMode();
        WaitTime(50);
        char szString[32];
        int nNumber = 0;
        sscanf(SDA(1), "%d", &nNumber);
        sprintf(szString, "AT+P%d", nNumber);
        int nLength = strlen(szString);
        int i;
        for(i = 0; i < nLength; i ++)
            UART2SendChar(szString[i]);        
        HC12ExitSetMode();
        
        printf("%s", szString);
        printf("\r\n");
    }
    else printf("Error command : %s !\r\n", STD_ARG[0]);
}

 

  结 ※


  文测试了 HC12 通讯模块的 AT命令,  查看了修改通讯频道的功能。  测试了发射功率命令的效果。

GM1702375882_1280_720.MPG|_-3


■ 相关文献链接:

● 相关图表链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值