📄 main.c
字号:
/*****************************************************************************\
文件名:main.c
描述:用于MSP430F149。
软件模拟异步串口通讯。
从串口接收数据,分析收到的数据包,然后根据算法进行运算,最后
将结果从串口返回。
数据包的结构见xieyi.h。
版本:1.0 2005-1-15
\*****************************************************************************/
#include <MSP430x14x.h>
#include "xieyi.h"
#include "bao.h"
#include "softuart.h"
void InitSys(); //初始化
int main( void )
{
unsigned char q0;
unsigned char *pq0;
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
InitSys(); //初始化
start:
if(GetRTx()==1)
{
//收到数据
q0=ReadBuf(); //从softuart.c模块中读数据
AddUsData(q0); //将数据存入数据包
}
pq0=DoUart(&q0); //处理数据
//发送数据
while(q0!=0)
{
SendUart(*pq0); //发送数据
while(GetRTx()==0); //等待发送完毕
ReadBuf(); //清除发送完毕标志
q0--;
pq0++;
}
InitRxd(); //串行口进入接收状态
LPM3;
_NOP();
goto start;
}
/*****************************************************************************
系统初始化
******************************************************************************/
void InitSys()
{
unsigned int iq0;
BCSCTL1&=~XT2OFF; //打开XT2振荡器
do
{
IFG1 &= ~OFIFG; // 清除振荡器失效标志
for (iq0 = 0xFF; iq0 > 0; iq0--); // 延时,等待XT2起振
}
while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振
BCSCTL2 =SELM_2; //选择MCLK为XT2
InitSfUart(); //初始化软件串行口
InitRxd(); //串行口进入接收状态
_EINT();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -