亿佰特无线数传电台的使用

利用无线数传电台实现单片机与上位机的连接:

我用的是亿佰特的E840-DTU(GPRS-03)数传电台,想要实现用两台数传电台进行STM32单片机和电脑上的上位机的无线串口通信,请问应该如何实现?

两边都用GPRS,这个就不是局域网了,两台设备一般是不能直接通讯的。
一般情况下,这两个设备需要通过一个中间服务器来实现数据转发。这个模块支持MQTT协议,你可以在公网上建个MQTT服务器,让两台DTU设备都连接到MQTT服务器,然后按MQTT的流程实现数据互传。
另外,PC端其实不一定要用这个模块,PC端可选更灵活的联网方式。

补充一句,上面的AI回答,看文风,应该是文心一言的回答,估计你自己都觉得看着头疼吧。

首先,需要确保两台数传电台都已经正确安装并配置好了相应的参数。
将STM32单片机与上位机连接起来,可以使用串口线或者其他方式。
在STM32单片机中打开串口监视程序,并将其设置为与上位机通信的串口号。
打开上位机的串口监视程序,并将其设置为与STM32单片机通信的串口号。
启动STM32单片机的串口监视程序,并在程序中启用GPRS数据传输功能。
在上位机中启用GPRS数据传输功能,并设置相应的参数。
将两台数传电台分别连接到STM32单片机和上位机的串口上,并设置相应的参数。
在上位机中启用GPRS数据传输功能,并设置相应的参数。
启动两台数传电台的串口监视程序,并在程序中启用GPRS数据传输功能。
在上位机中启用GPRS数据传输功能,并设置相应的参数。
在两台数传电台的串口监视程序中设置相应的参数,例如:数据包大小、数据包间隔等。
启动两台数传电台的串口监视程序,并在程序中启用GPRS数据传输功能。
在上位机中启用GPRS数据传输功能,并设置相应的参数。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    由于该问题与参考资料不符,以下是如何使用亿佰特无线数传电台连接STM32单片机和电脑上的上位机的问题解答:

    步骤一:连接硬件

    首先,需要将无线数传电台连接到STM32单片机和电脑上的上位机。连接步骤如下:

    1. 将无线数传电台的串口RX / TX连接到STM32单片机的UART TX / RX引脚。

    2. 将无线数传电台的GND连接到STM32单片机的GND引脚。

    3. 将无线数传电台的电源连接到STM32单片机的3.3V / 5V引脚。

    4. 将电脑上的上位机与无线数传电台通过串口连接(若是蓝牙,则配对连接)。

    步骤二:编写STM32单片机的接收程序

    接下来,需要编写STM32单片机的接收程序。在该程序中,需要使用STM32的UART模块接收从无线数传电台发送过来的数据,并将其存储到变量中。接收程序代码如下:

    #include "stm32f10x.h"
    #include <stdio.h>
    
    int main(void)
    {
        // 初始化UART
        USART_InitTypeDef USART_InitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
    
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
    
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
    
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
    
        USART_InitStructure.USART_BaudRate = 9600;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_InitStructure.USART_Parity = USART_Parity_No;
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
        USART_Init(USART1, &USART_InitStructure);
    
        USART_Cmd(USART1, ENABLE);
    
        // 循环接收数据
        while (1)
        {
            while (USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET);
            uint8_t data = USART_ReceiveData(USART1);
    
            // 在这里对接收到的数据进行处理
            printf("Received data: %c\r\n", data);
        }
     }
    

    使用上述代码可以将Wireless UART发送的数据通过UART接收到STM32单片机,并将其打印到控制台。

    步骤三:编写上位机程序

    最后,需要编写上位机程序,从串口读取数据,并将数据分析和处理为所需格式。具体实现可以使用Python或其他编程语言。以下是Python代码示例,用于从串口读取数据:

    import serial
    
    ser = serial.Serial('COM3', 9600, timeout=1)
    
    while True:
        data = ser.read(1)
        if data:
            print(data)
    

    运行上述代码后,会不断从串口读取数据,并将其打印到控制台。

    值得注意的是,串口的波特率必须与无线数传电台的波特率一致,否则将无法接收到正确的数据。在本例中,我们假设无线数传电台的波特率为9600。如果波特率不一致,需要在代码中进行修改。

    总结

    通过以上步骤,可以将STM32单片机和电脑上的上位机与亿佰特无线数传电台进行无线连接。需要注意的是,硬件连接和串口通信的配置必须正确,否则将无法正常工作。另外,可以根据实际需求进行代码的修改,以满足特定的应用场景。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^