学 :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进行处理,非常感谢!