SIM800 不接受命令,我收到命令的回声

SIM800 does not take commands, I receive echos of commands

我想让SIM800l用STM32F103发短信和打电话。 问题是,我只收到命令的回显,如果我使用 uart 发送“AT”,我会得到 A、T 作为回显。但不行,因为它应该响应。我的电源很好,我很确定我的 UART 代码也很好。

有人遇到同样的问题吗?谢谢!

    void uart_init2(){
     UART1_Init_Advanced(115200, _UART_8_BIT_DATA, _UART_NOPARITY, _UART_ONE_STOPBIT, &_GPIO_MODULE_USART1_PA9_10);
     USART1_CR1.B5  = 1;
     NVIC_IntEnable(IVT_INT_USART1);
}
char UART1_Read2(){
   while (!(USART1_SR & USART1_SR.B5));  // Wait until RXNE (RX not empty) bit is set
        // USART resets the RXNE flag automatically after reading DR
        return ((char)USART1_DR); // & 0xFF));
   }
void InterruptModule_1() iv IVT_INT_USART1 ics ICS_AUTO {
   receive = UART1_Read();
   buffer[buffernum++]=receive;
   }

主要是:

buffernum=0;
UART1_Write_Text("ATE0");
UART1_Write_Text("AT");
delay_ms(1000);
delay_ms(1000);
//UART1_Write_Text("AT+IPR=9600");
buffernum=0;
UART1_Write_Text("ATDXXXXXX;");
delay_ms(1000);
delay_ms(1000);

代码后缓冲区中的结果为:

我找到了解决办法。不知道为什么,但是当我在命令中添加 \r 时,一切都按预期工作。 示例:

UART1_Write_Text("AT\r");

希望这对某人有所帮助,我在网上没有找到类似的东西。