#include
#define uchar unsigned char
#define NAK 0x15 //Xmodem协议中的术语
#define ACK 0x06
#define CAN 0x18
#define EOT 0x04
#define SOH 0x01
//要发送的数据,即430从此数组中取数据构成数据包,共22字节,分5次发送,最后一次补3个0x1A
uchar FileSend[22] = {0xAA,0xA9,0xA8,0xA7,0xA6,0xA5,0xA4,0xA3,0xA2,0xA1,0xA0,0x9F,0x9E,0x9D,0x9C,0x9B,0x9A,0x99,0x98,0x97,0x96,0x95};
//数据包,长9字节,分别为SOH、包序号、序号补码、5字节数据、校验码
uchar DataSend[9];
uchar Seq = 0x01; //数据包序号,初值为1
uchar cmpl; //数据包序号的补码
uchar csum; //垂直累加和校验码,初值为0
uchar rec_PC; //收到的PC的确认命令
uchar k = 0; //指向FileSend的标号,从中取数据时使用,初值为0
uchar j = 0; //指向DataSend的标号,发送数据时使用,初值为0
uchar fin_flag = 0; //数据取完的标志,为1时表示FileSend中的数据已经取完
uchar eot_flag = 0; //发送完成的标志,为1时表示430已经发送过了EOT标志
void Init_CLK(); //函数声明
void Init_Port();
void Init_UART0();
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
_DINT();