void UART_init(void) {P3SEL = BIT3+BIT4;// 配置IO口复用P3.4,5 = USCI_A0 TXD/RXDUCA0CTL1 |= UCSWRST;// **Put state machine in reset**UCA0CTL1 |= UCSSEL_2;// 选择时钟源SMCLK /* UCA0BR0 = 6;// 1MHz 9600 (see User's Guide)UCA0BR1 = 0;// 1MHz 9600UCA0MCTL = UCBRS_0 + UCBRF_13 + UCOS16;// Modln UCBRSx=0, UCBRFx=0,*/UCA0BR0 = 78;// 1MHz 9600 (see User's Guide)UCA0BR1 = 0;// 1MHz 9600UCA0MCTL = UCBRS_0 + UCBRF_2 + UCOS16;// Modln UCBRSx=0, UCBRFx=0,// over samplingUCA0CTL1 &= ~UCSWRST;// **Initialize USCI state machine**UCA0IE |= UCRXIE;// Enable USCI_A0 RX interrupt //__enable_interrupt();//__bis_SR_register(LPM0_bits + GIE);// Enter LPM0, interrupts enabled __bis_SR_register(LPM0_bits + GIE);// Enter LPM0, interrupts enabled //__low_power_mode_off_on_exit();__no_operation();// For debugger }
我自己用__enable_interrupt()开启中断没有开启低功耗发送会来的数据就乱码了,可是低功耗的时候进入不了主函数求教!
嘤嘤嘤
灰小子:
官方的例程,在配置完串口之后,就进入低功耗状态。然后其他的操作,都是在中断服务程序里完成的。
没看懂你的“”低功耗的时候进入不了主函数“”是什么意思?是不是在中断服务程序里没有退出低功耗状态?
Susan Yang:
您现在具体是想实现什么功能呢?能否详细说一下?
MX He:
回复 Susan Yang:
已经解决了,在I调用IIC时关闭了中断
Susan Yang:
回复 MX He:
很高兴您能解决问题!