⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gsm_430.c

📁 车载GPS监控终端的完整代码,与监控中心的通讯采用GPRS.
💻 C
📖 第 1 页 / 共 2 页
字号:
OK    **1,为了减少串行FLASH的操作(包括串行FLASH中的SRAM的操作,则将以前存储在buffer1中的数据转移到外部的SRAM中)
		3,根据硬件PCB的改进,增加对外部串行FLASH的WP管脚的控制(预防对FLASH的操作损坏)
		4,针对场强信号的发送,改为每间隔一定时间发送场强信号,而不是在查询CSQ后才发送场强指令OK
		5,如果M22处于电话状态下,则需要每间隔一定时间查询CLCC指令	OK

2005年10月19日:
		1,增加进行测试外部SRAM的指令()完成测试OK
		2,增加主控主动挂机指令的接收手柄的响应,如果2秒内未接收到手柄的挂机指令响应,则重复发送
			重复5次,则丢弃此包(还未调试)
		3,将对手柄需要发送的的数据存储在外部SRAM中。改变原来向手柄发送指令随时发送的结构模式
			取消所有对buffer1的操作
		14,因为每次在发送数据和登陆TCP前,均有个验证中心号码和目标号码等参数的有效性,需要是对外部SRAM进行操作
			频繁的操作可能引起外部FLASH内容的丢失,则这里改为每30分钟进行所有的验证,如果严整正确,则设置
			一个标志,如果失败,则立刻进行数据的重装工作

2005年11月3日
		1,根据在MSP430内部的两个信息扇区,取消对信息扇区数据的校验核的计算,取代的是最后一个字节存储0XAA,
			只表示此信息扇区存储过数据。如果在检验外部FLASH的两个扇区的数据均不正确的情况下
			则需要将两个信息扇区的数据覆盖到外部的FLASH中

2005年11月8日:
		1,增加定位查询的可靠信,如果在接收到一个短消息(属于定位查询),并且,设备工作在
			GSM的工作方式下,并且目标号码属于无效的状态,则需要暂时提取这个短消息号码中的
			号码,然后作为暂时的目标号码存储起来,在发送定位数据的时候则以此目标号码为准。

2005年11月16日:
		1,取消每次系统程序上电后,查询记录仪驾驶员代码的操作

2005年11月19日
		1,精简程序,减少AD转换判断部分,增加对FLASH的可靠操作,尤其是对电话号码存储部分的操作


2005年11月21日
		1,完善参数设置方面的尤其是APN方面的处理,增加对buffer2的处理机制

2005年11月23日
		1,针对山东市场的一体机,默认电话始终处于开启状态

2005年12月1日:
		1,针对在测试过程中,出现的模拟串口失效的问题,则增加了个几个恢复(重新对TA定时器进行初始化)
2005年12月3日:
		1,针对如果外部的晶振如果暂时的失效,则会严重影响三个模拟串口的接收,则采用系统程序重新启来恢复
2005年12月4日:
		1,针对外部晶振XT2的暂时失效,则增加对外部晶振XT2的失效中断处理程序



2005年12月8日:
		在前面版本的一体机的程序结构下,需要进行部分程序结构的修改,使得符合一体机的概念,就是将GPS
		工作部分和记录仪的工作部分能够在任何一个还没工作正常下,双方能互相不干扰和影响,即GSM模块在
		进行初始化或者正在初始化的过程中,并不影响记录仪的工作和显示屏的工作


2005年12月27日:
		根据以前存在接收记录仪数据的方式有可能判断不到正确的数据包,现在将接收记录仪数据的方式进行改进
\********************************************************/


/********************************************************\
*	文件名:  GSM_430.C
*	创建时间:2004年12月7日
*	创建人:        
*	版本号:  1.00
*	功能:	  系统主程序框架
*	文件属性:公共文件
*	修改历史:(每条详述)
\********************************************************/

#include <msp430x14x.h>
#include <math.h>
#include "TA_Uart.h"
#include "SPI45DB041.h"
#include "W_Protocol.h"
#include "Handle_Protocol.h"
#include "Uart01.h"
#include "M22_AT.h"
#include "Define_Bit.h"
#include "D_Buffer.h"
#include "Other_Define.h"
#include "General.h"
#include "Main_Init.h"
#include "Sub_C.h"
#include "Check_GSM.h"
#include "Do_Reset.h"
#include "Do_M22.h"
#include "Do_Handle.h"
#include "Do_GPS.h"
#include "Do_Disp.h"
#include "Do_Other.h"
#include "Do_SRAM.h"
#include "Do_Record.h"
#include "Record_Protocol.h"
#include "Msp430_Flash.h"
/*
#include "Disp_Protocol.h"
*/
//#define Debug_GSM_COM1

unsigned int i;
unsigned int  Z_Timer=0;
unsigned int  Debug_Timer=0;
/********************************************************\
*	函数名:main.c
	作用域:本地文件调用
	        作为主框架程序
*	功能:	项目主函数,系统的循环运行
*	参数:
*	返回值:
*	创建人:
*
*	修改历史:(每条详述)
\********************************************************/
void main(void)
{
    //看门狗定时器WDT的设置:
	WDTCTL=WDTPW+WDTHOLD;   //关闭看门狗WDT  ,WDTPW看门狗的口令

    //时钟模块的设置:
    BCSCTL2|=SELS+SELM1;    //SELS表示用XT2CLK作为SMCLK的时钟源
                            //SELM1表示用XT2CLK作为MCLK时钟源
                            //ACLK---辅助时钟,用于软件选择分频因子,也可用软件选做各外围模块的时钟信号
                            //MCLK---主时钟,主要用于CPU和系统,也可软件选择分频因子
                            //SMCLK--子时钟,由软件选择用于外围模块

//	BCSCTL2|=DIVS_3;		//选择SMCLK时钟的分频因子为8
//	BCSCTL2|=DIVM_3;		//选择MCLK时钟的分频因子为8
//-------------------------------

    do
    {
		IFG1 &= ~OFIFG;            		// Clear OSCFault flag
		for (i = 0xFF; i > 0; i--);		// Time for flag to set
		for (i = 0xFF; i > 0; i--);
    }
    while ( IFG1 & OFIFG );				// OSCFault flag still set?
//--------------------------------
    for (i = 60000; i > 0; i--);
  //定时器TA的设置
    TACTL|=TASSEL1;         //输入时钟选择MCLK
    TACTL|=TACLR;           //定时器A清除位CLR清零
    TACTL|=MC1;             //定时器A选择连续增记数模式
//    TACTL|=TAIE;          //定时器A溢出中断允许

    TAR=0;                  //定时器A的值清零
    TACCTL0|=OUT;           //TXD2 Idle as Mark
	TACCTL1|=OUT;           //TXD3 Idle as Mark
	TACCTL2|=OUT;           //TXD4 Idle as Mark

  //定时器TB的设置
    TBCTL|=TBSSEL1;         //输入时钟源选择MCLK
    TBCTL|=TBCLR;           //定时器B清除位CLR清零
    TBCTL|=MC1;             //模式为连续增记数
//    TBCTL|=TBIE;          //定时器B溢出中断允许
    TBR=0;                  //寄存器B的值清零
    TBCCTL0|=CCIE;
	/*
	=============================================================================
	                             波特率的计算方式
	          8000 000 /19200=416.6667D(十进制)=01A0H+

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -