嵌入式软件设计第12次实验 告

 

 

学 :140201229            姓名何丹

组别:第4组                实验地点:D19

 

一、实验目的:

1.掌握通过GSM短信远程与嵌入式设备进行交互的方法。

 

二、实验内容:

1.编写程序把嵌入式开发板采集到的温度信息通过GSM短信传送给指定 码。(每10秒发送1次)

 

三、实验过程描述及结果展示:

设备:移动SIM卡,充电器,SIM900A板子,连接线,耳机

(一)硬件处理过程

1、用串口连接STM32_MODE与SIM900A,并将SIM卡装进SIM900A卡套里。

2、连接电源。供电后长按开机按钮,使电话开机。

3、将USART1跳线棒和USART3跳线棒拔掉,用跳线将COM3TX(发送)与COM1RXD(接收),COM1RX(发送)与 COM3TXD(接收)相连接。

(二)测试处理过程:AT命令_拨打电话

1测试本机是否可用(AT+CPIN

 

2测试本机是否有信 (AT+CSQ)

 

 

主函数设计:

#include “sys.h”

#include “delay.h” 

#include “usart.h”  

#include “led.h”

#include “lcd.h”

#include “key.h” 

#include “touch.h”

#include “text.h”

#include “w25qxx.h”

#include “malloc.h”

#include “ff.h”

#include “exfuns.h” 

#include <string.h>

#include “dht11.h”

#define BEEP PFout(8) // 蜂鸣器控制IO

const u16 POINT_COLOR_TBL[OTT_MAX_TOUCH]={RED,GREEN,BLUE,BROWN,GRED}; 

 

extern u16 USART3_RX_STA;  

extern u8 USART3_RX_BUF[400];

 

void LCD_Draw_Circle(u16 x0,u16 y0,u8 r);

 

void sendtext(char *p){

       while(*p!=’ ’){

              USART_SendData(USART3,*p);

              while(USART_GetFlagStatus(USART3,USART_FLAG_TC)!=SET);

              p++;

       }

       USART_SendData(USART3,0x0D);

       while(USART_GetFlagStatus(USART3,USART_FLAG_TC)!=SET);

       USART_SendData(USART3,0x0A);

       while(USART_GetFlagStatus(USART3,USART_FLAG_TC)!=SET);

}

int beepopen = 0;

int ledopen = 1;

int main(void)

{

       u8 receive[5];

       u8 command[100];

       u32 t=0;

       u8 temperature;

       u8 humidity;

       NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2

       delay_init(168);  //初始化延时函数

       uart_init(115200);         //初始化串口波特率为115200

       uart3_init(115200);

      

       LED_Init();                                //初始化LED

       KEY_Init();

      LCD_Init();                                //LCD初始化

       BEEP_Init();

       while(DHT11_Init());

       tp_dev.init();                 //触摸屏初始化

      

       LCD_Clear(BLACK);

      POINT_COLOR=YELLOW;//设置字体为黄色

       BACK_COLOR = BLACK;

 

       {

              int i;

              for(i=0;i<=10;i++)

                     sendtext(“AT+CNMI=2,1”);

       }

       while(1)

       {                    

             if(t%10==0)//每100ms读取一次

              {                                                              

                     DHT11_Read_Data(&temperature,&humidity);          //读取温湿度值                                    

                     printf(“temperature:%d,humidity:%dn”,temperature,humidity); 

                     if ((USART3_RX_STA&(1<<15))!=0){

                            if (strstr(USART3_RX_BUF,”+CMTI: “SM””

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年3月4日
下一篇 2017年3月4日

相关推荐