Serial port 8051微控制器向ZigBee传输数据

Serial port 8051微控制器向ZigBee传输数据,serial-port,8051,zigbee,Serial Port,8051,Zigbee,我的问题是,我不知道如何从8051微控制器串行传输AT命令。关于我如何做到这一点有什么建议吗 但目前,我将尝试使用阵列从微控制器向计算机传输一串数据,并使用超级终端查看。目前,我只能将一个字符“a”从8051连续传输到计算机上的超级终端。通过任何8051发送字符串看起来应该是一样的 首先,以正确的方式初始化串行端口(假设可以发送“A”就可以了) 然后,必须初始化表或指针 UC *ucText = "Hello World"; UC ucText[] = "Hello World"; 创建一个输

我的问题是,我不知道如何从8051微控制器串行传输AT命令。关于我如何做到这一点有什么建议吗


但目前,我将尝试使用阵列从微控制器向计算机传输一串数据,并使用超级终端查看。目前,我只能将一个字符“a”从8051连续传输到计算机上的超级终端。

通过任何8051发送字符串看起来应该是一样的

首先,以正确的方式初始化串行端口(假设可以发送“A”就可以了)

然后,必须初始化表或指针

UC *ucText = "Hello World";
UC ucText[] = "Hello World";
创建一个输入参数为UC变量的单一函数(ucSend可以是“a”或任何东西),并在调用时仅传输一次

void vTx232 (UC ucSend)
 {
    while (TI);    //While last TX not done
    SBUF = ucSend; //Character into TX buffer
 }
然后,使用第二个函数来传输调用上述函数的字符串。输入字符串是您先前创建的变量

void vTxString (UC *ucpString)
 {
   while (*ucpString!= 0x00)   //While string not at it's end
    {
      vTx232(*ucpString);       //Send the actual string character
      ucpString++;              //Increments string
    }
 }

这个问题对于堆栈溢出来说太广泛了。请尽量把范围缩小到一个具体的技术问题。好的,我只想把一串数据从8051传输到计算机。谢谢。现在,我可以将一串数据传输到计算机,并通过超级终端查看。我使用了if语句,比如if SBUF=='A'。每当微控制器接收到“A”时,我只想发送一次。但现在的问题是字符串一直在传输。我认为这是因为“A”仍然在SBUF中?我是否需要清除SBUF以便停止传输?我该怎么做呢?无论你在8051上使用什么样的工具链,都应该包括一个串行库,以及一个可以用来发送字符串的API。否则,您将需要阅读用于配置端口的串行寄存器的文档,将字符加载到传输缓冲区,并知道何时可以安全加载下一个字符。用谷歌搜索“8051 C中的串行通信”可以找到许多代码示例。