最近做毕设要用到STM32和SIM908的GPRS模块,由于是刚接触STM32开发板,所以是边学边码代码,碰到不少问题。我把STM32的串口1连接到电脑,串口2通过RS232和SIM908模块连接。然后在电脑上输入AT指令,通过串口1接收指令转发到串口2上去,但是一直通讯不上。简化程序,直接写死AT指令,就从串口2向模块发送“AT”看能不能返回OK,可还是通讯不上。下面是发送和接收的代码,比较简单。主函数就调用代码,然后打印一下收到的Data。还请做过类似开发的帮忙指点指点,困在这个地方好几天了,不胜感激!void sendAT(void)
{
uint8_t data[4] = {'A','T',0x0D,0x0A};
uint32_t count = 0;
for(;count < 4;count++)
{
USART_SendData(USART2,data[count]);
while(USART_GetFlagStatus(USART2,USART_FLAG_TC) == RESET){}
}
}
void recSIMData(uint8_t* data)
{
uint32_t count = 0;
uint8_t key = 0;
while(1)
{
if(USART_GetFlagStatus(USART2,USART_FLAG_RXNE) != RESET)
{
key = (uint8_t)USART2->DR;
if(key == '\r')
break;
else
data[count++] = key;
}
}
data[count] = '\0';
}
|