TA_Uart.C
资源名称:GPRS.rar [点击查看]
上传用户:zanguozi01
上传日期:2014-02-19
资源大小:155k
文件大小:19k
源码类别:
GPS编程
开发平台:
Others
- /********************************************************
- * 文件名: TA_Uart.C
- * 创建时间:2004年12月7日
- * 创建人:
- * 版本号: 1.00
- * 功能: 根据MSP430的特点,这部分实现MSP430三个模拟串口的功能
- 包括三个模拟串口的发送和接收
- * 文件属性:公共文件
- * 修改历史:(每条详述)
- ********************************************************/
- #include <msp430x14x.h>
- #include "TA_Uart.h"
- #include "General.h"
- #include "Sub_C.h"
- #include "Define_Bit.h"
- #define SEND_DELAY_TIME 3
- unsigned char SBUFIN2,SBUFIN3,SBUFIN4;
- unsigned char SBUFOUT2,SBUFOUT3,SBUFOUT4;
- unsigned char BitCnt2,BitCnt3,BitCnt4;
- unsigned char RTI2,RTI3,RTI4;
- unsigned char RIE;
- unsigned int RXTXData2,RXTXData3,RXTXData4;
- void TX2_Byte(void);
- void TX3_Byte(void);
- void TX4_Byte(void);
- /********************************************************
- * 函数名:TX2_Byte
- 作用域:本文件调用
- * 功能: 模拟串口2发送一个字节子程序
- * 参数: SBUFOUT2
- * 返回值:无
- * 创建人:
- *
- * 修改历史:(每条详述)
- ********************************************************/
- void TX2_Byte (void)
- {
- RXTXData2=(int)SBUFOUT2;
- BitCnt2=0x0A; // Load Bit counter, 8data + ST/SP,装10个BIT位
- RTI2 |= ~SEND_FLAG; //清除相应的发送标志位
- TACCR0 = TAR; // Current state of TA counter,清空记数器
- TACCR0 += Bitime0; // Some time till first bit
- RXTXData2 |= 0x100; // Add mark stop bit to RXTXData 1为停止位
- RXTXData2 = RXTXData2 << 1; // Add space start bit 0为开始位(位左移1位)
- TACCTL0 = OUTMOD0+CCIE; // TXD先设置1,中断允许
- //while ( TACCTL0 & CCIE ); // Wait for TX completion,等待所有的位都发送完成
- while ( (~RTI2)&SEND_FLAG );
- gDelay_Com_Timer=0;
- while(gDelay_Com_Timer<SEND_DELAY_TIME);
- }
- /********************************************************
- * 函数名:RX2_Ready
- 作用域:外部文件调用
- * 功能: 模拟串口2准备接收数据子程序(捕获模式0)
- * 参数: 无
- * 返回值:无
- * 创建人:
- *
- * 修改历史:(每条详述)
- ********************************************************/
- void RX2_Ready (void)
- {
- TA_Init();
- RTI2 &= ~RECEIVE_FLAG;
- BitCnt2=0x08; //Load Bit counter,装8个BIT位
- TACCTL0=SCS+OUTMOD0+CM1+CAP+CCIE; //同步捕获Sync
- //CCIS0=0,在捕获模式中,定义捕获事件的输入源为CCI0A
- //OUTMOD0=1,输出模式为置位
- //CM1=1,设置捕获模式1,下降沿捕获
- //CAP=1,设置为捕获模式
- //CCIE=1,中断允许
- } //SCS同步捕获,(CCIS0=1,CCIS1=0)定义提供捕获事件的输入源
- /********************************************************
- * 函数名:TX3_Byte
- 作用域:本文件调用
- * 功能: 模拟串口2发送一个字节子程序
- * 参数: SBUFOUT3
- * 返回值:无
- * 创建人:
- *
- * 修改历史:(每条详述)
- ********************************************************/
- void TX3_Byte (void)
- {
- TACCTL0 &=~ CCIE;
- TBCCTL0 &=~ CCIE;
- IE2&=~URXIE1;
- RXTXData3=(int)SBUFOUT3;
- BitCnt3 = 0xA; // Load Bit counter, 8data + ST/SP,装10个BIT位
- RTI3 |= ~SEND_FLAG; //清除相应的发送标志位
- TACCR1 = TAR; // Current state of TA counter,清空记数器
- TACCR1 += Bitime1; // Some time till first bit
- RXTXData3 |= 0x100; // Add mark stop bit to RXTXData 1为停止位
- RXTXData3 = RXTXData3 << 1; // Add space start bit 0为开始位(位左移1位)
- TACCTL1 = OUTMOD0+CCIE; // TXD先设置1,中断允许,设置CCIFG能进入中断
- //while (TACCTL1 |= CCIE); // Wait for TX completion,等待所有的位都发送完成
- while( (~RTI3)&SEND_FLAG );
- gDelay_Com_Timer=0;
- while(gDelay_Com_Timer<SEND_DELAY_TIME);
- }
- /********************************************************
- * 函数名:RX3_Ready
- 作用域:外部文件调用
- * 功能: 模拟串口3准备接收数据子程序(捕获模式1)
- * 参数: 无
- * 返回值:无
- * 创建人:
- *
- * 修改历史:(每条详述)
- ********************************************************/
- void RX3_Ready (void)
- {
- TA_Init();
- RTI3 &= ~RECEIVE_FLAG;
- BitCnt3=0x8; //Load Bit counter,装8个BIT位
- TACCTL1=SCS+OUTMOD0+CM1+CAP+CCIE; //同步捕获Sync,