最近做毕设要用到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';
- }
|