GPRS程序修改Word文档下载推荐.docx

上传人:b****4 文档编号:16442019 上传时间:2022-11-23 格式:DOCX 页数:23 大小:20.02KB
下载 相关 举报
GPRS程序修改Word文档下载推荐.docx_第1页
第1页 / 共23页
GPRS程序修改Word文档下载推荐.docx_第2页
第2页 / 共23页
GPRS程序修改Word文档下载推荐.docx_第3页
第3页 / 共23页
GPRS程序修改Word文档下载推荐.docx_第4页
第4页 / 共23页
GPRS程序修改Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

GPRS程序修改Word文档下载推荐.docx

《GPRS程序修改Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《GPRS程序修改Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

GPRS程序修改Word文档下载推荐.docx

//奇偶校验位,0为无校验,1奇数校验,2为偶数校验

}UARTMODE;

UART_Ini()

初始化UART0/UART1口

baud/UARTMODE

externuint8UART_Ini(uint32baud,UARTMODEset);

volatileuint8rcv_new;

//接收新数据标志

UART_SendStr()

UART0/UART1口发送程序

WhichUart/*str/strlen

externvoidUART_SendStr(uint8WhichUart,uint8*str,uint16strlen);

IRQ_UART0/IRQ_UART1

UART0和UART1的接收中断函数

#definercvbufsize020

#definercvbufsize120

externuint8rcv_buf0[rcvbufsize0];

//*接收时可超越缓冲rcv_buf0数组界限,该缓冲能保存前n次未读取的数据。

externuint8rcv_buf1[rcvbufsize1];

//*接受时可超越缓冲rcv_buf1数组界限,该缓冲能保存前n次未读取的数据。

externuint16rcv_byte_num0;

externuint16rcv_byte_num1;

externvoid__irqIRQ_UART0(void);

externvoid__irqIRQ_UART1(void);

DelayNS()

长软件延时

dly延时参数,值越大,延时越久

externvoidDelayNS(uint32dly);

HC595_SendDat()

向74HC595发送一字节数据

dat要发送的数据

发送数据时,高位先发送。

externvoidHC595_SendDat(uint8dat);

/*此表为0--F的字模*/

constuint8DISP_TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,

0x88,0x83,0xC6,0xA1,0x86,0x8E};

Led_Show()

LED1--LED4显示相应的入口值(0--F)

i要显示的数据

externvoidLed_Show(uint8i);

//LED流水灯1--2--4--8--4--2--1

externvoidLED_CONNECTING(void);

Gprs_Connection()

启动GPRS服务

externuint8Gprs_Connection(void);

Gprs_Apn()

设置移动APN接口并激活PDP移动场景

externuint8Gprs_Apn(void);

GprsServer_Start()

与服务器连接、启动

externuint8GprsServer_Start(void);

Gprs_Recever()

GPRS模块接收SERVER发送来的数据

externuint8Gprs_Recever(void);

Gprs_Send()

GPRS模块发送来自PC的数据

externuint8Gprs_Send(void);

#endif

UART.C

是一些常用函数的集合

将跳线器JP4全部短接。

#defineSPI_CS(1<

<

29)/*P0.29*/

#defineSPI_DATA(1<

6)/*P0.6*/

#defineSPI_CLK(1<

4)/*P0.4*/

#defineSPI_IOCON(SPI_CS|SPI_DATA|SPI_CLK)/*SPI接口的I/O设置字*/

#defineLED_IOCON(0x0F<

22)/*LED1-4的I/O设置字*/

//奇偶校验位,0为无校验,1奇数校验,2为偶数校验

uint8UART_Ini(uint32baud,UARTMODEset)

{

uint32bak;

PINSEL0=0x00050005;

//设置I/O连接到UART0/UART1

/*参数过滤*/

if((0==baud)||(baud>

115200))return(0);

if((set.datab<

5)||(set.datab>

8))return(0);

if((0==set.stopb)||(set.stopb>

2))return(0);

if(set.parity>

4)return(0);

/*设置串口波特率*/

U0LCR=0x80;

//DLAB位置1

U1LCR=0x80;

bak=(Fpclk>

>

4)/baud;

U0DLM=bak>

8;

U1DLM=bak>

U0DLL=bak&

0xff;

U1DLL=bak&

/*设置串口模式*/

bak=set.datab-5;

//设置字长度

if(2==set.stopb)bak|=0x04;

//判断是否为2位停止位

if(0!

=set.parity){set.parity=set.parity-1;

bak|=0x08;

}

bak|=set.parity<

4;

//设置奇偶校验

U0LCR=bak;

U1LCR=bak;

return

(1);

voidUART_SendStr(uint8WhichUart,uint8*str,uint16strlen)

if(WhichUart==0)

{

for(;

strlen>

0;

strlen--)

{

U0THR=*str++;

//发送数据

while((U0LSR&

0x40)==0);

//等待数据发送完毕

}

}

else

{

for(;

{

U1THR=*str++;

//发送数据

while((U1LSR&

//等待数据发送完毕

}

uint8rcv_buf0[rcvbufsize0];

//接收时可超越缓冲rcv_buf0数组界限,该缓冲能保存前n次未读取的数据。

uint8rcv_buf1[rcvbufsize1];

//接受时可超越缓冲rcv_buf1数组界限,该缓冲能保存前n次未读取的数据。

uint16rcv_byte_num0;

uint16rcv_byte_num1;

/****************IRQ_UART0****************/

void__irqIRQ_UART0(void)

uint8i;

uint8int_type;

int_type=U0IIR&

0x0F;

if(int_type==0x04)

for(i=0;

i<

i++)

{rcv_buf0[rcv_byte_num0]=U0RBR;

rcv_byte_num0++;

elseif(int_type==0x0C)

VICVectAddr=0x00;

//中断处理结束

/****************IRQ_UART1****************/

void__irqIRQ_UART1(void)

int_type=U1IIR&

{rcv_buf1[rcv_byte_num1]=U1RBR;

rcv_byte_num1++;

voidDelayNS(uint32dly)

uint32i;

for(;

dly>

dly--)

for(i=0;

50000;

i++);

voidHC595_SendDat(uint8dat)

IO0CLR=SPI_CS;

//SPI_CS=0

i++)//发送8位数据

{IO0CLR=SPI_CLK;

//SPI_CLK=0

/*设置SPI的DATA输出值*/

if((dat&

0x80)!

=0)IO0SET=SPI_DATA;

elseIO0CLR=SPI_DATA;

dat<

=1;

IO0SET=SPI_CLK;

//SPI_CLK=1

IO0SET=SPI_CS;

//SPI_CS=1,输出显示数据

voidLed_Show(uint8i)

{

IO0SET=0x0F<

22;

IO0CLR=i<

//设置LED显示输出

voidLED_CONNECTING(void)//LED流水灯1--2--4--8--4--2--1

Led_Show

(1);

DelayNS(15);

Led_Show

(2);

Led_Show(4);

Led_Show(8);

}

voidLED_SEND(void)//LED流水灯1--2--4--8

voidLED_RECEVER(void)//LED流水灯8--4--2--1

uint8Gprs_Connection(void)

uint8i,j,n;

uint8ret=0;

uint8RcvData[20];

uint8CGATT[12]={65,84,43,67,71,65,84,84,61,49,13,10};

for(n=0;

n<

5;

n++)

LED_CONNECTING();

for(i=0;

i<

20;

i++)

UART_SendStr(1,CGATT,12);

HC595_SendDat(0xF9);

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

当前位置:首页 > 求职职场 > 社交礼仪

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1