本人是单片机小白,记录一些开发过程中的发现和心得。
最近在用MSP430F1232配合射频模块(Ti的CC1101芯片)开发无线收发程序,发现向板子里灌写程序后,串口助手sscom一直收到00 0 FF之类的数据,起初以为是电平转换芯片SP3232工作不正常,用万用表测量输出电压,没发现问题;于是清空主函数,只留下while(1)语句,问题依然没解决。排除硬件问题,只能说明串口没有正常工作,于是尝试调用串口初始化程序如下:
void InitUart(void)
{
volatile unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // close WTD
P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD
BCSCTL1 |= XTS; // ACLK = LFXT1 = HF XTAL
do
{
IFG1 &= ~OFIFG; // Clear OSCFault flag
for (i = 0xFF; i > 0; i--); // Time for flag to set
}
while ((IFG1 & OFIFG) != 0); // OSCFault flag still set?
BCSCTL2 |= SELM_3;