📄 car_sim300.c
字号:
if(W_InSerial == W_OutSerial)//没有字节内容可读取
{
//vOpenINTR();//开中断
return 0x0100;//返回无意义的值(凡是高子节不为零的数都是无意义的值
}
bTByte = B_SerialQueue[W_OutSerial];
if(++W_OutSerial == MAX_SERIAL_LEN) W_OutSerial = 0; //修改指针边界
//vOpenINTR();//开中断
return ((WORD)bTByte);
}
/******************************************************************************
**函 数 名 : wGetSerialUnReadBytes
**功能简介 : 获取MCU串口1缓冲中当前未读的字节数目
**参数说明 : 无
**调用函数 : vCloseINTR(),vOpenINT()
**被调用函数: 暂无
**全局变量 : W_InSerial, W_OutSerial
**返 回 值 : WORD类型,为未读出的字节数
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
WORD wGetSerialUnReadBytes(void)
{
WORD wTemp,wTemp1,wTemp2;
//vCloseINTR();//关中断
wTemp1 = W_InSerial;
wTemp2 = W_OutSerial;
//vOpenINTR();
if(wTemp1 >= wTemp2)wTemp = wTemp1 - wTemp2;
else wTemp = wTemp1 + MAX_SERIAL_LEN - wTemp2;
return (wTemp);
}
/******************************************************************************
**函 数 名 : vSendSerialByte
**功能简介 : 从MCU串口1发送一字符
**参数说明 : bParaCh-待发送的字节
**调用函数 : 无
**被调用函数: vSendSerialString,vSendSerialChars
**全局变量 : 无
**返 回 值 : 无
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
void vSendSerialByte(BYTE bParaCh)
{
/*
SBUF = bParaCh;
while(!TI){ }
TI = 0;
*/
SendChar2(bParaCh);
}
/******************************************************************************
**函 数 名 : vSendSerialString
**功能简介 : 从MCU串口1发送一字符串
**参数说明 : *pstrPara-指向待发送的字符串
**调用函数 : vSendSerialByte
**被调用函数: 暂无
**全局变量 : 无
**返 回 值 : 无
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
void vSendSerialString(BYTE *pstrPara)
{
BYTE *pstrTemp;
pstrTemp = pstrPara;
while( (*pstrTemp != 0x00) && (*pstrTemp != 0x0d) )
{
vSendSerialByte(*pstrTemp++);
}
vSendSerialByte(0x0d);
}
//=================================================================================================
/******************************************************************************
**函 数 名 : vSendNULLString
**功能简介 : 从MCU串口1发送一字符串
**参数说明 : *pstrPara-指向待发送的字符串
**调用函数 : vSendSerialByte
**被调用函数: 暂无
**全局变量 : 无
**返 回 值 : 无
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
void vSendNULLString(BYTE *pstrPara, WORD wStrLen)
{
BYTE *pstrTemp;
WORD wI;
pstrTemp = pstrPara;
for(wI=0;wI<wStrLen;wI++)
{
vSendSerialByte(*pstrTemp++);
}
}
//=================================================================================================
///////////////////////////
//modify
/******************************************************************************
**函 数 名 : vMcuSerialIntr2
**功能简介 : MCU串口1中断服务函数
**参数说明 : 无
**调用函数 : 无
**被调用函数: 无
**全局变量 : W_InSerial, W_OutSerial
**返 回 值 : 无
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
/*
void vMcuSerialIntr2(void) interrupt SERIAL2_INT_NUM //9
{
BYTE bTByte2;
WORD wTPsn2;
if( (SCON2 & 0x01) == 0x01) //接收中断服务函数
{
SCON2 &= 0xfe; //位清零
bTByte2 = SBUF2;//最好先读一下
wTPsn2 = W_InSerial2;
if(++wTPsn2 == MAX_SERIAL_LEN2) wTPsn2 = 0;//修改指针边界
if(wTPsn2 != W_OutSerial2)//队列没有满的情况下
{
B_SerialQueue2[W_InSerial2] = bTByte2;
W_InSerial2 = wTPsn2;
}
}
}
*/
/******************************************************************************
**函 数 名 : wReadSerial2
**功能简介 : 读MCU串口1缓冲中的一个字节
**参数说明 : 无
**调用函数 : vCloseINTR(),vOpenINT()
**被调用函数: 暂无
**全局变量 : W_InSerial2, W_OutSerial2
**返 回 值 : WORD类型,为读出一字节内容
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
WORD wReadSerial2(void)
{
BYTE bTByte2;
//vCloseINTR();//关中断
if(W_InSerial2 == W_OutSerial2)//没有字节内容可读取
{
//vOpenINTR();//开中断
return 0x0100;//返回无意义的值(凡是高子节不为零的数都是无意义的值
}
bTByte2 = B_SerialQueue2[W_OutSerial2];
if(++W_OutSerial2 == MAX_SERIAL_LEN2) W_OutSerial2 = 0; //修改指针边界
//vOpenINTR();//开中断
return ((WORD)bTByte2);
}
/******************************************************************************
**函 数 名 : wGetSerialUnReadBytes2
**功能简介 : 获取MCU串口1缓冲中当前未读的字节数目
**参数说明 : 无
**调用函数 : vCloseINTR(),vOpenINT()
**被调用函数: 暂无
**全局变量 : W_InSerial2, W_OutSerial2
**返 回 值 : WORD类型,为未读出的字节数
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
WORD wGetSerialUnReadBytes2(void)
{
WORD wTemp2,wTemp3,wTemp4;
//vCloseINTR();//关中断
wTemp3 = W_InSerial2;
wTemp4 = W_OutSerial2;
//vOpenINTR();
if(wTemp3 >= wTemp4)wTemp2 = wTemp3 - wTemp4;
else wTemp2 = wTemp3 + MAX_SERIAL_LEN2 - wTemp4;
return (wTemp2);
}
/******************************************************************************
**函 数 名 : vSendSerialByte2
**功能简介 : 从MCU串口2发送一字符
**参数说明 : bParaCh-待发送的字节
**调用函数 : 无
**被调用函数: vSendSerialString2,vSendSerialChars2
**全局变量 : 无
**返 回 值 : 无
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
void vSendSerialByte2(BYTE bParaCh2)
{
/*
SBUF2 = bParaCh2;
while( (SCON2 & 0x02) != 0x02 ){ }
SCON2 &= 0xfd;//清零
*/
SendChar1(bParaCh2);
}
/******************************************************************************
**函 数 名 : vSendSerialString2
**功能简介 : 从MCU串口2发送一字符串
**参数说明 : *pstrPara2-指向待发送的字符串
**调用函数 : vSendSerialByte2
**被调用函数: 暂无
**全局变量 : 无
**返 回 值 : 无
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
void vSendSerialString2(BYTE *pstrPara2)
{
BYTE *pstrTemp2;
pstrTemp2 = pstrPara2;
while( (*pstrTemp2 != 0x00) && (*pstrTemp2 != 0x0d) )
{
vSendSerialByte2(*pstrTemp2++);
}
vSendSerialByte2(0x0d);
vSendSerialByte2(0x0a);
}
//=================================================================================================
/******************************************************************************
**函 数 名 : vSendNULLString2
**功能简介 : 从MCU串口2发送一字符串
**参数说明 : *pstrPara2-指向待发送的字符串
**调用函数 : vSendSerialByte2
**被调用函数: 暂无
**全局变量 : 无
**返 回 值 : 无
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
void vSendNULLString2(BYTE *pstrPara2, WORD wStrLen2)
{
BYTE *pstrTemp2;
WORD wI2;
pstrTemp2 = pstrPara2;
for(wI2=0;wI2<wStrLen2;wI2++)
{
if((wI2%50)==0)IWDG_ReloadCounter();//喂狗
vSendSerialByte2(*pstrTemp2++);
}
}
//=================================================================================================
/*
void vIinitGps(void)//初始化GPS
{
WORD wI;
for(wI = 0;wI < 32; wI++)
vSendSerialByte2(bGPSIinitTable[wI]);
}
*/
void vIinitGps(void)//初始化GPS
{
BYTE bI;
for(bI = 0; bI < 6; bI++)
{
IWDG_ReloadCounter();//喂狗
vSendSerialString2(bGpsSet[bI]);
}
W_InSerial2 = 0;
W_OutSerial2 = 0;
}
/******************************************************************************
**函 数 名 : wReadTcpSerial
**功能简介 : 读MCU串口1缓冲中的一个字节
**参数说明 : 无
**调用函数 : vCloseINTR(),vOpenINT()
**被调用函数: 暂无
**全局变量 : W_InSerial, W_OutSerial
**返 回 值 : WORD类型,为读出一字节内容
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
WORD wReadTcpSerial(void)
{
BYTE bTByte;
if(W_TcpInSerial == W_TcpOutSerial)//没有字节内容可读取
{
return 0x0100;//返回无意义的值(凡是高子节不为零的数都是无意义的值
}
bTByte = B_TcpSerialQueue[W_TcpOutSerial];
if(++W_TcpOutSerial == MAX_TCP_SERIAL_LEN) W_TcpOutSerial = 0; //修改指针边界
return ((WORD)bTByte);
}
/******************************************************************************
**函 数 名 : wGetTcpSerialUnReadBytes
**功能简介 : 获取MCU串口1缓冲中当前未读的字节数目
**参数说明 : 无
**调用函数 : vCloseINTR(),vOpenINT()
**被调用函数: 暂无
**全局变量 : W_InSerial, W_OutSerial
**返 回 值 : WORD类型,为未读出的字节数
**函数版本 : V1.00.00
**修改时间 : 2007-01-27
******************************************************************************/
WORD wGetTcpSerialUnReadBytes(void)
{
WORD wTemp,wTemp1,wTemp2;
wTemp1 = W_TcpInSerial;
wTemp2 = W_TcpOutSerial;
if(wTemp1 >= wTemp2)wTemp = wTemp1 - wTemp2;
else wTemp = wTemp1 + MAX_TCP_SERIAL_LEN - wTemp2;
return (wTemp);
}
//=================================================================================================
/******************************************************************************
**函 数 名 : vInitEepromPara
**功能简介 : 写密码为默认值
**参数说明 : 无
**调用函数 : bISP_IAP_ByteRead,vISP_IAP_ByteProgram
**被调用函数: 暂无
**全局变量 : 无
**返 回 值 : 无
**函数版本 : V1.00.00
**修改时间 : 2007-02-05
******************************************************************************/
void vInitEepromPara(void)
{
BYTE bI,bJ;
if((bISP_IAP_ByteRead(CHECK_WORD_STAR_ADDR))!=CHECK_WORD1||(bISP_IAP_ByteRead(CHECK_WORD_STAR_ADDR + 1))!=CHECK_WORD2)
{
vISP_IAP_ByteProgram(CHECK_WORD1, CHECK_WORD_STAR_ADDR);
vISP_IAP_ByteProgram(CHECK_WORD2, CHECK_WORD_STAR_ADDR + 1);
for(bI = 0; bI < MAX_PHONE_NUM; bI++)//使用默认密码
{
vISP_IAP_ByteProgram(B_DefaultPassWord[bI], PASSWORD_STAR_ADDR + bI);
if(B_DefaultPassWord[bI] == 0x0)break;
}
for(bI = 0; bI < MAX_PHONE_NUM; bI++)//使用默认服务器IP地址
{
vISP_IAP_ByteProgram(B_DefaultIP[bI], SEVER_IP_STAR_ADDR + bI);
if(B_DefaultIP[bI] == 0x0)break;
}
for(bI = 0; bI < MAX_PHONE_NUM; bI++)//使用默认监控电话号码作为设备号
{
vISP_IAP_ByteProgram(B_DefaultMont[bI], DEVICE_PHONE_STAR_ADDR + bI);
if(B_DefaultMont[bI] == 0x0)break;
}
for(bI = 0; bI < MAX_PHONE_NUM; bI++)//使用默认监控电话号码
{
vISP_IAP_ByteProgram(B_DefaultMont[bI], MONT_PHONE_STAR_ADDR + bI);
if(B_DefaultMont[bI] == 0x0)
{
vISP_IAP_B
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -