在 BSL430_PI_USCIA.c 中、它设置 MSP430时钟。 并非所有寄存器都已设置、当应用程序跳转到 BSL 时可能会出现问题。 如果应用将 FLL 更改为高达16MHz、则不这样做可能会为 UART 设置无效波特率。
void pi_init()
{
volatile int i;
BSL430_ReceiveBuffer = RAM_BUF;
BSL430_SendBuffer = RAM_BUF;
UCSCTL3=0;//将 FLL 设定为缺省值
UCSCTL6=0xC1CD;//重置为默认值
UCSCTL7=0x0703;//重置为默认值
UCSCTL8=0x0707;//重置为默认值
UCSCTL4 = SELA_REFOCLK + SELM__DCOCLK + SELESS__DCOCLK;//检查 SELA
UCSCTL0 = 0x000;//将 DCO 设定为最低抽头
UCSCTL1 = DCORSEL_4;// 8MHz 标称 DCO
UCSCTL5 = DIVM_0 + DIVS_0;
UCSCTL2 = FLLD_2 |(((DCO_SPEED/ACLK_SPEED)/4)- 1);// 8MHz
init_USCI( baud_9600 );
}//init