本帖最后由 zyf6095 于 2016-9-5 17:28 编辑
如题,利用串口的接收中断,串口助手发字节我希望返回数组内容abc,但遇到俩问题:1、发送任何内容都不能显示(已全速运行),除非按下复位键。2、按下复位键时返回的内容偶尔是我发送的!!!并不是预设的abc,求大神告知哪里的错误,谢谢
#include "msp430f249.h"
char shuzu[3]="abc";
void ini_uart()
{
P3SEL|=BIT6+BIT7; //P3.6,P3.7设置为UART功能(串口我用的A1)
UCA1CTL1 |= UCSWRST; //复位寄存器设置
UCA1CTL0 = 0x00; //关闭奇偶校验(默认奇数校验)
UCA1CTL1 |= 0x40;//波特率发生器参考时钟设置为ACLK
UCA1BR0 =0x03;//此行与下一行决定整数部分
UCA1BR1 =0x00;//
UCA1MCTL = 0x06;//小数调制与低频(关UCOS16)
UC1IE |= 0x02;//开串口接收与发送中断
UCA1CTL1 &= ~UCSWRST;//使能USCI模块
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
ini_uart();
_EINT();
while(1);
}
#pragma vector=USCIAB1RX_VECTOR
__interrupt void uart(void)
{
char i; for(i=0;i<3;i++)
{
UCA1TXBUF =shuzu
;//我的程序里是UCA1TXBUF=shuzu【i】,但网站编辑器显示不了【i】
while(!(UC1IFG&UCA1TXIFG));
}
}
此帖出自小平头技术问答
一周热门 更多>