GPRS程序修改 优秀.doc

上传人:文库蛋蛋多 文档编号:4122780 上传时间:2023-04-06 格式:DOC 页数:12 大小:61.50KB
返回 下载 相关 举报
GPRS程序修改 优秀.doc_第1页
第1页 / 共12页
GPRS程序修改 优秀.doc_第2页
第2页 / 共12页
GPRS程序修改 优秀.doc_第3页
第3页 / 共12页
GPRS程序修改 优秀.doc_第4页
第4页 / 共12页
GPRS程序修改 优秀.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《GPRS程序修改 优秀.doc》由会员分享,可在线阅读,更多相关《GPRS程序修改 优秀.doc(12页珍藏版)》请在三一办公上搜索。

1、/* 文件名:UART.C的头文件* 功能:作为UART.C的头文件,在程序调用的时候方便* 说明:无*/#define IN_UART#include config.h /系统配置文件/* 名称:UartMode* 功能:UART0/UART1串口工作模式说明* 入口参数:无* 出口参数:无*/typedef struct UartMode uint8 datab; / 字长度,5/6/7/8 uint8 stopb; / 停止位,1/2 uint8 parity; / 奇偶校验位,0为无校验,1奇数校验,2为偶数校验 UARTMODE;/* 名称:UART_Ini()* 功能:初始化UAR

2、T0/UART1口* 入口参数:baud / UARTMODE* 出口参数:无*/extern uint8 UART_Ini(uint32 baud, UARTMODE set);volatile uint8 rcv_new; / 接收新数据标志/* 名称:UART_SendStr()* 功能:UART0/UART1口发送程序* 入口参数:WhichUart / *str / strlen* 出口参数:无*/extern void UART_SendStr(uint8 WhichUart,uint8 *str,uint16 strlen);/* 名称:IRQ_UART0 / IRQ_UART1

3、* 功能:UART0和UART1的接收中断函数* 入口参数:无* 出口参数:无*/#define rcvbufsize0 20#define rcvbufsize1 20extern uint8 rcv_buf0rcvbufsize0; / *接收时可超越缓冲rcv_buf0数组界限,该缓冲能保存前n次未读取的数据。extern uint8 rcv_buf1rcvbufsize1; / *接受时可超越缓冲rcv_buf1数组界限,该缓冲能保存前n次未读取的数据。extern uint16 rcv_byte_num0;extern uint16 rcv_byte_num1;extern void

4、 _irq IRQ_UART0(void);extern void _irq IRQ_UART1(void);/* 名称:DelayNS()* 功能:长软件延时* 入口参数:dly延时参数,值越大,延时越久* 出口参数:无*/extern void DelayNS(uint32 dly);/* 名称:HC595_SendDat()* 功能:向74HC595发送一字节数据* 入口参数:dat要发送的数据* 出口参数:无* 说明:发送数据时,高位先发送。*/extern void HC595_SendDat(uint8 dat);/* 此表为0-F的字模 */const uint8 DISP_TA

5、B16 = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,0x8E ;/* 名称:Led_Show()* 功能:LED1-LED4显示相应的入口值(0-F)* 入口参数:i要显示的数据* 出口参数:无*/extern void Led_Show(uint8 i);/LED流水灯 1-2-4-8-4-2-1extern void LED_CONNECTING(void);/* 名称:Gprs_Connection()* 功能:启动GPRS服务* 入口参数:无* 出口参数:无*/extern

6、uint8 Gprs_Connection(void);/* 名称:Gprs_Apn()* 功能:设置移动APN接口并激活PDP移动场景* 入口参数:无* 出口参数:无*/extern uint8 Gprs_Apn(void);/* 名称:GprsServer_Start()* 功能:与服务器连接、启动* 入口参数:无* 出口参数:无*/extern uint8 GprsServer_Start(void);/* 名称:Gprs_Recever()* 功能:GPRS模块接收SERVER发送来的数据* 入口参数:无* 出口参数:无*/extern uint8 Gprs_Recever(void)

7、;/* 名称:Gprs_Send()* 功能:GPRS模块发送来自PC的数据* 入口参数:无* 出口参数:无*/extern uint8 Gprs_Send(void);#endif/* 文件名:UART.C* 功能:是一些常用函数的集合* 说明:将跳线器JP4全部短接。*/#define IN_UART#include config.h#define SPI_CS(129)/* P0.29 */#define SPI_DATA(16)/* P0.6 */#define SPI_CLK(14)/* P0.4 */#define SPI_IOCON(SPI_CS|SPI_DATA|SPI_CLK

8、)/* SPI接口的I/O设置字 */#define LED_IOCON(0x0F115200) ) return(0); if( (set.datab8) ) return(0); if( (0=set.stopb)|(set.stopb2) ) return(0); if( set.parity4 ) return(0); /* 设置串口波特率 */ U0LCR = 0x80; / DLAB位置1 U1LCR = 0x80; bak = (Fpclk4)/baud; U0DLM = bak8; U1DLM = bak8; U0DLL = bak&0xff; U1DLL = bak&0xff

9、; /* 设置串口模式 */ bak = set.datab-5; / 设置字长度 if(2=set.stopb) bak |= 0x04; / 判断是否为2位停止位 if(0!=set.parity) set.parity = set.parity-1; bak |= 0x08; bak |= set.parity0; strlen-) U0THR = *str+; / 发送数据 while( (U0LSR&0x40)=0 ); / 等待数据发送完毕 else for(; strlen0; strlen-)U1THR = *str+; / 发送数据 while( (U1LSR&0x40)=0

10、 ); / 等待数据发送完毕/* 名称:IRQ_UART0 / IRQ_UART1* 功能:UART0和UART1的接收中断函数* 入口参数:无* 出口参数:无*/#define rcvbufsize0 20#define rcvbufsize1 20uint8 rcv_buf0rcvbufsize0; /接收时可超越缓冲rcv_buf0数组界限,该缓冲能保存前n次未读取的数据。uint8 rcv_buf1rcvbufsize1; /接受时可超越缓冲rcv_buf1数组界限,该缓冲能保存前n次未读取的数据。uint16 rcv_byte_num0;uint16 rcv_byte_num1;/*

11、 IRQ_UART0 */void _irq IRQ_UART0(void) uint8 i; uint8 int_type; int_type = U0IIR&0x0F; if( int_type=0x04 ) for( i=0; i8; i+ ) rcv_buf0rcv_byte_num0 = U0RBR; rcv_byte_num0+; else if( int_type=0x0C ) rcv_buf0rcv_byte_num0 = U0RBR; rcv_byte_num0+; VICVectAddr = 0x00; / 中断处理结束/* IRQ_UART1 */void _irq IR

12、Q_UART1(void) uint8 i; uint8 int_type; int_type = U1IIR&0x0F; if( int_type=0x04 ) for( i=0; i0; dly-) for(i=0; i50000; i+);/* 名称:HC595_SendDat()* 功能:向74HC595发送一字节数据* 入口参数:dat要发送的数据* 出口参数:无* 说明:发送数据时,高位先发送。*/void HC595_SendDat(uint8 dat) uint8 i; IO0CLR = SPI_CS; / SPI_CS = 0 for(i=0; i8; i+)/ 发送8位数据

13、 IO0CLR = SPI_CLK;/ SPI_CLK = 0/* 设置SPI的DATA输出值 */ if( (dat&0x80)!=0 ) IO0SET = SPI_DATA; else IO0CLR = SPI_DATA; dat = 1; IO0SET = SPI_CLK;/ SPI_CLK = 1 IO0SET = SPI_CS; / SPI_CS = 1,输出显示数据/* 名称:Led_Show()* 功能:LED1-LED4显示相应的入口值(0-F)* 入口参数:i要显示的数据* 出口参数:无*/void Led_Show(uint8 i) IO0SET = 0x0F22; IO0

14、CLR = i22;/ 设置LED显示输出void LED_CONNECTING(void) /LED流水灯 1-2-4-8-4-2-1Led_Show(1);DelayNS(15);Led_Show(2);DelayNS(15);Led_Show(4);DelayNS(15);Led_Show(8);DelayNS(15);Led_Show(4);DelayNS(15);Led_Show(2);DelayNS(15); void LED_SEND(void) /LED流水灯 1-2-4-8Led_Show(1);DelayNS(15);Led_Show(2);DelayNS(15);Led_

15、Show(4);DelayNS(15);Led_Show(8);DelayNS(15);void LED_RECEVER(void) /LED流水灯 8-4-2-1Led_Show(8);DelayNS(15);Led_Show(4);DelayNS(15);Led_Show(2);DelayNS(15);Led_Show(1);DelayNS(15);/* 名称:Gprs_Connection()* 功能:启动GPRS服务* 入口参数:无* 出口参数:无*/uint8 Gprs_Connection(void)uint8 i,j,n;uint8 ret=0;uint8 RcvData20;u

16、int8 CGATT12=65,84,43,67,71,65,84,84,61,49,13,10;for(n=0;n5;n+) LED_CONNECTING(); for (i=0;i 0)UART_SendStr(0,rcv_buf1,rcv_byte_num1); for(j=0; jrcv_byte_num1; j+)RcvDataj=rcv_buf1j;rcv_byte_num1 = 0;if (j=19 & RcvData0=13 & RcvData1=10 & RcvData2=79 & RcvData3=75)ret=1;break;return(ret); /* 名称:Gprs

17、_Apn()* 功能:设置移动APN接口并激活PDP移动场景* 入口参数:无* 出口参数:无*/uint8 Gprs_Apn(void)uint8 i,j,k,m;uint8 ret=0;uint8 RcvData20;uint8 RcvData120;uint8 CGDCONT27=65,84,43,67,71,68,67,79,78,84,61,49,44,34,73,80,34,44,34,67,77,78,69,84,34,13,10;uint8 CGACT14=65,84,43,67,71,65,67,84,61,49,44,49,13,10;UART_SendStr(1,CGDCO

18、NT,27);HC595_SendDat(0xA4);LED_CONNECTING();for(m=0;m 0)for(i=0; ircv_byte_num1; i+)RcvDatai=rcv_buf1i;rcv_byte_num1 = 0;for (j=0;j 0)UART_SendStr(0,rcv_buf1,rcv_byte_num1);for(k=0; krcv_byte_num1; k+)RcvData1k=rcv_buf1k;rcv_byte_num1 = 0;if (k=6 & RcvData10=13 & RcvData11=10 & RcvData12=79 & RcvDat

19、a13=75)ret=1;break;return(ret); /* 名称:GprsServer_Start()* 功能:与服务器连接、启动* 入口参数:无* 出口参数:无*/uint8 GprsServer_Start(void)uint8 i,j,k;uint8 ret=0;uint8 RcvData20;uint8 RcvData120;uint8 SDATACONF42=65,84,43,83,68,65,84,65,67,79,78,70,61,49,44,34,84,67,80,34,44,34,54,49,46,49,56,53,46,49,53,54,46,53,34,44,5

20、0,48,50,48,13,10; /61.185.156.5:2020uint8 SDATASTART19=65,84,43,83,68,65,84,65,83,84,65,82,84,61,49,44,49,13,10;for (i=0;i 0)for(j=0; j 0)UART_SendStr(0,rcv_buf1,rcv_byte_num1);/testfor(k=0; k 0)rcv_byte_num1 = 0;UART_SendStr(1,SDATAREAD,16); /readDelayNS(50);if (rcv_byte_num1 0)i=rcv_byte_num1-19;for(j=0; j2)UART_SendStr(0,RcvData,i);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号