//===========================================================================//
//MSP430接收中繼端協議——徐方鑫//
//通訊協議格式為:16進制發送//
//5309AAAAAAAAAAAA45//
//53為數據包打頭,字符's'//
//09為字符串長度,char類型//
//其后AAAAAA等為數據內容//
//45為數據包結尾,字符'E'//
//===========================================================================//
#include"msp430x54x.h"
#include
#include
#include
#include"PIN_DEF.H"
#defineucharunsignedchar
#defineuintunsignedint
#defineFLL_FACTOR749//FLL_FACTOR:DCO倍頻系數
#defineDATA_BAG_ERROR_MAX0x5000//最大數據包長度,int類型,串口所用8位基本都支持
charevent;//待機模式事件
uintData_Bag_Length,Data_Length;//Data_Bag_Leangth接收數據包的長度
charRXBuffer[20];//接收緩存
//***************************************************************************//
////
//初始化主時鐘:MCLK=XT1×(FLL_FACTOR+1)//
////
//***************************************************************************//
voidInit_CLK(void)
{
WDTCTL=WDTPW+WDTHOLD;//關看門狗
P7SEL|=0x03;//端口選擇外部低頻晶振XT1
UCSCTL6&=~XT1OFF;//使能外部晶振
UCSCTL6|=XCAP_3;//設置內部負載電容
UCSCTL3|=SELREF_2;//DCOref=REFO
UCSCTL4|=SELA_0;//ACLK=XT1
__bis_SR_register(SCG0);//關閉FLL控制回路
UCSCTL0=0x0000;//設置DCOx,MODx
UCSCTL1=DCORSEL_7;//設置DCO振蕩范圍
UCSCTL2=FLLD__1+FLL_FACTOR;//Fdco=(FLL_FACTOR+1)×FLLRef=(649+1)*32768=21.2992MHz
__bic_SR_register(SCG0);//打開FLL控制回路
__delay_cycles(1024000);
do
{
UCSCTL7&=~(XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG);//清除XT2,XT1,DCO錯誤標志
SFRIFG1&=~OFIFG
|