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");
希望这对某人有所帮助,我在网上没有找到类似的东西。
我想让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");
希望这对某人有所帮助,我在网上没有找到类似的东西。