unsung

unsung

0个粉丝

4

问答

0

专栏

6

资料

unsung  发布于  2013-11-25 21:01:57
采纳率 0%
4个问答
2452

SIM900+STM32+MP3+3.2寸LCD原理图SCH

[code]下面是我打电话的程序

#include "gprs.h"
#include "LCD_Drive.h"
#include "usart.h"
#include "Touch.h"


extern void Delay_Ms(uint16_t time);  
extern void Delay_Us(uint16_t time);
extern void Refreshes_Screen(void);
void gprs_delay(void)
{
        unsigned int x,y;
        for(x = 0;x<100;x++)
        for(y = 500; y>0;y--);

}
void GPRS_init(void)
{        
        unsigned char buf[256];
        printf("AT\r\n");
        GSM_getstr(buf);         
        gprs_delay();
        printf("ATE0\r\n");        
    GSM_getstr(buf);         
        gprs_delay();
        printf("AT+CGMI\r\n");         //厂家信
        GSM_getstr(buf);         
        gprs_delay();        
        printf("AT+CGMM\r\n");         //获得模块标识
        GSM_getstr(buf);         
        gprs_delay();
        printf("AT+CGMR\r\n");        //获得改订的软件版
        GSM_getstr(buf);
        gprs_delay();
        printf("AT+CGSN\r\n");//获得GSM模块的IMEI(国际移动设备标识)序列号        
        GSM_getstr(buf);
        gprs_delay();
        printf("AT+CIMI\r\n");//获得IMSI
        GSM_getstr(buf);           
        Disp_LCDString((240-sizeof("GPRS_INIT->OK")*8)/2,0,"GPRS_INIT->OK");
        if(buf[0] == 'O')        
        gprs_delay();
}
unsigned char GPRS_GETNUM(void)
{        
        unsigned char buf[256],num = 0;        
        printf("拨号开始!!!");//获得IMSI
                while(1)
                {
                        if(Pen_Point.Key_Sta==Key_Down)//触摸屏被按下
                        {
                                Pen_Int_Set(0);                                //关闭中断
                                do
                                {
                                Convert_Pos();         
                                Pen_Point.Key_Sta=Key_Up;
                                        if((Pen_Point.X0>=11) && (Pen_Point.X0 <= 73) && (Pen_Point.Y0>=53)&&(Pen_Point.Y0<=91))
                                        {
                                                  buf[num] = '1';
                                                  buf[num + 1]='\0';
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=89) && (Pen_Point.X0 <= 154) && (Pen_Point.Y0>=53)&&(Pen_Point.Y0<=91))
                                        {
                                                  buf[num] = '2';
                                                  buf[num + 1]='\0';                                   
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=170) && (Pen_Point.X0 <= 231) && (Pen_Point.Y0>=53)&&(Pen_Point.Y0<=91))
                                        {
                                                  buf[num] = '3';
                                                  buf[num + 1]='\0';                                   
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=11) && (Pen_Point.X0 <= 73) && (Pen_Point.Y0>=102)&&(Pen_Point.Y0<=140))
                                        {
                                                  buf[num] = '4';
                                                  buf[num + 1]='\0';                                 
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=89) && (Pen_Point.X0 <= 154) && (Pen_Point.Y0>=102)&&(Pen_Point.Y0<=140))
                                        {
                                                  buf[num] = '5';
                                                  buf[num + 1]='\0';                                 
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=170) && (Pen_Point.X0 <= 231) && (Pen_Point.Y0>=102)&&(Pen_Point.Y0<=140))
                                        {
                                                  buf[num] = '6';
                                                  buf[num + 1]='\0';                                 
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=11) && (Pen_Point.X0 <= 73) && (Pen_Point.Y0>=151)&&(Pen_Point.Y0<=188))
                                        {
                                                  buf[num] = '7';
                                                  buf[num + 1]='\0';                                 
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=89) && (Pen_Point.X0 <= 154) && (Pen_Point.Y0>=102)&&(Pen_Point.Y0<=188))
                                        {
                                                  buf[num] = '8';
                                                  buf[num + 1]='\0';                           
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=170) && (Pen_Point.X0 <= 231) && (Pen_Point.Y0>=102)&&(Pen_Point.Y0<=188))
                                        {
                                                  buf[num] = '9';
                                                  buf[num + 1]='\0';                           
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=11) && (Pen_Point.X0 <= 73) && (Pen_Point.Y0>=201)&&(Pen_Point.Y0<=239))
                                        {
                                                  buf[num] = '*';
                                                  buf[num + 1]='\0';                           
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=89) && (Pen_Point.X0 <= 154) && (Pen_Point.Y0>=201)&&(Pen_Point.Y0<=239))
                                        {
                                                  buf[num] = '0';
                                                  buf[num + 1]='\0';                        
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=170) && (Pen_Point.X0 <= 231) && (Pen_Point.Y0>=201)&&(Pen_Point.Y0<=239))
                                        {
                                                  buf[num] = '#';
                                                  buf[num + 1]='\0';                  
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                                  num++;
                                        }
                                        else if((Pen_Point.X0>=11) && (Pen_Point.X0 <= 73) && (Pen_Point.Y0>=249)&&(Pen_Point.Y0<=287))
                                        {
                                                  printf("ATH\r\n");
                                                  num = 0;                                         
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(6*8))/2,25,"nocall");
                                        }
                                        else if((Pen_Point.X0>=89) && (Pen_Point.X0 <= 154) && (Pen_Point.Y0>=249)&&(Pen_Point.Y0<=287))
                                        {        
                                                  printf("ATD%s;\r\n",buf);         
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(4*8))/2,25,"call");
                                                  buf[0]='\0';
                                                  num = 0;
                                        }
                                        else if((Pen_Point.X0>=170) && (Pen_Point.X0 <= 231) && (Pen_Point.Y0>=249)&&(Pen_Point.Y0<=287))
                                        {
                                                  num--;
                                                  buf[num]='\0';           
                                                  Disp_LCDString((240-(num*8))/2,25,"                    ");
                                                  Disp_LCDString((240-(num*8))/2,25,buf);
                                        }
                                        Delay_Ms(400);            
                                        GPIOC->ODR|=1<<5;    //PC5 上拉           
                        }while(PEN==0);//如果PEN一直有效,则一直执行
                        Pen_Int_Set(1);//开启中断
                }
                else Delay_Ms(1);
//                if(Key==USER)//USER按下,则执行校准程序
//                {
//                        Clear_LCD(BlackColor);//清屏
//                    Touch_Adjust();  //屏幕校准
//                        Save_Adjdata();         
//                        Refreshes_Screen();
//                }
        }
}
[/code]

做了一套基于stm32的类似手机的小耍耍,大家如果感兴趣可以看看,本来想弄个ucos上跑个系统但是一直没有空去弄如果感兴趣可以玩玩;
给大家上点图



原帖[url]http://www.amobbs.com/forum.php?mod=viewthread&tid=5471741&extra=page%3D1%26filter%3Ddigest%26digest%3D1[/url]
易百纳技术社区文件: 3.2-1298TFT(sch).pdf
下载
易百纳技术社区文件: sheet.zip
下载
我来回答
回答1个
时间排序
认可量排序

途行者阿杜

1个粉丝

364

问答

106

专栏

220

资料

途行者阿杜 2013-11-28 11:41:22
认可0
好东西啊,转载的
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区