野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6872|回复: 4

求大神,GSM发送AT指令收不到应答数据

[复制链接]
发表于 2016-10-11 14:16:06 | 显示全部楼层 |阅读模式
#include"stm32f10x.h"
#include "main.h"

#define LED_PORT GPIOB
u8 LED_Blink = 0;
u8 shu;
/***************************************************************************//**
* Global variables
******************************************************************************/



GPIO_InitTypeDef GPIO_InitStructure;

void GPIO_Config(void)
{       
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB| RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOD |RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO,ENABLE);

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 |GPIO_Pin_2 | GPIO_Pin_3;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 |GPIO_Pin_0 | GPIO_Pin_14 | GPIO_Pin_3 | GPIO_Pin_4;
        GPIO_Init(GPIOB, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4 ;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
       
       
        GPIO_ResetBits( GPIOC, GPIO_Pin_4 ); //RI ENABLE

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15 ;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
}



u16 jieshou[100];
u8 wei1=0;
u16 usarnum = 1;
void UART4_IRQHandler(void)
{
       
         if(USART_GetITStatus(UART4, USART_IT_RXNE) != RESET)
        {

                usarnum=USART_ReceiveData(UART4);
                jieshou[wei1] = usarnum;
                wei1++;

       }                                 
}



void delay_ms(u16 nms)
{
        u32 temp;
        SysTick->LOAD = 9000*nms;
        SysTick->VAL = 0X00;
        SysTick->CTRL = 0X01;
        do
        {
                temp = SysTick->CTRL;
        }
        while((temp&0x01) && (!(temp&(1<<16))));
        SysTick->CTRL = 0x00;
        SysTick->VAL = 0x00;
       
}

void gsm_usart_init( void )
{
       
        USART_InitTypeDef USART_InitStructure ;
        GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB1PeriphClockCmd( RCC_APB1Periph_UART4, ENABLE );
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init( GPIOC, &GPIO_InitStructure );

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init( GPIOC, &GPIO_InitStructure );
       
        USART_InitStructure.USART_BaudRate = 115200;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_InitStructure.USART_Parity = USART_Parity_No;
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None ;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
        USART_Init( UART4, &USART_InitStructure );

        USART_ITConfig( UART4, USART_IT_RXNE, ENABLE );
        USART_Cmd( UART4, ENABLE );
}

void USART4_Puts(char * str)
{
    while(*str)
    {
        USART_SendData(UART4, *str++);
        /* Loop until the end of transmission */
        while(USART_GetFlagStatus(UART4, USART_FLAG_TXE) == RESET);
    }
               
               
}



void bsp_nvic_init( void )
{
        NVIC_InitTypeDef  NVIC_InitStructure;

        NVIC_PriorityGroupConfig( NVIC_PriorityGroup_2 );

        NVIC_InitStructure.NVIC_IRQChannel = UART4_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init( &NVIC_InitStructure );

}




int main(void)
{       

        Usart1_Init();
       
        bsp_nvic_init();
        gsm_usart_init();
        GPIO_Config();
       
        //上电
        GPIO_WriteBit(GPIOC, GPIO_Pin_6, Bit_SET);
        delay_ms(500);
        //开机
        GPIO_WriteBit(GPIOC, GPIO_Pin_5, Bit_SET);
        delay_ms(2000);
        GPIO_WriteBit(GPIOC, GPIO_Pin_5, Bit_RESET);
        //DTR置低
        GPIO_WriteBit(GPIOC, GPIO_Pin_4, Bit_RESET);
       
       
       
       
        USART4_Puts("AT\r");
        delay_ms(5000);
        USART4_Puts("AT\r");
        delay_ms(3000);
       
       
       
        while(1)
        {
               
                USART4_Puts("AT+GMR\r");  
               for(i = 0; i<10; i++)
              {
                    printf("%x, ", jieshou[i]);
              }
               
        }

}





回复

使用道具 举报

发表于 2016-10-11 14:39:25 | 显示全部楼层
参考一下我们的例程

你用的模块是SIM900A  还是800A的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-10-11 15:07:23 | 显示全部楼层
flyleaf 发表于 2016-10-11 14:39
参考一下我们的例程

你用的模块是SIM900A  还是800A的?

使用的SIM800C, 参考了很多例程,中断接收函数就是接收不到数据,不知道怎么办好了
回复 支持 反对

使用道具 举报

发表于 2016-10-11 18:09:25 | 显示全部楼层
xiaoxu_111 发表于 2016-10-11 15:07
使用的SIM800C, 参考了很多例程,中断接收函数就是接收不到数据,不知道怎么办好了

SIM800跟900A的我们最近发现不兼容,需要点时间来调试下
回复 支持 反对

使用道具 举报

发表于 2017-5-7 20:09:59 | 显示全部楼层
你这样直接贴代码是没人愿意看的。。,,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-1 11:51 , Processed in 0.031351 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表