串口初始化
串口初始化的时候为什么只打开接收中断使能,而不能打开发送中断使能?void init_uart1(void)
{
P5SEL |= 0xC0; // P5.6,7 = USCI_A1 TXD/RXD
UCA1CTL0 |= 0X80; //odd parity
UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
UCA1CTL1 |= 0X40; // ACLK
UCA1BR0 = 0x03; // 1MHz 115200 (see User's Guide)
UCA1BR1 = 0x00; // 1MHz 115200
UCA1MCTL |= UCBRS_3+UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA1IE |= UCRXIE; // Enable USCI_A1 RX interr
//__bis_SR_register(GIE); // 使能中断
//_EINT();
} 中断一定要记得是能哦,而不是注释掉。
UCA1IE |= UCRXIE; // Enable USCI_A1 RX interr
你的程序本身也只打开接受中断 你这个用的是RS485的还是?
一般AURT的话接收跟发送是相互独立的。
这个不应该的吧,该方式的基本不会出问题的。
发送中断如果是‘发送buffer空中断’,则在初始化的时候不需要打开,只有在发送数据时才打开,而且在判断没有数据可发的时候还要关闭,否则会一直进中断
如果是‘发送完成中断’,则在初始化的时候可以打开,需要看具体芯片的发送中断是哪种
楼主可以看看管网给出的例程
可以printf 输出
串口配置没有什么难度吧
不是不能而是不需要
没有任何规定不可以啊
发送完成中断可以打开
是啊,进入中断关闭是对的,但是退出时候要再开启,要不没有法进行后面的重复工作了。
嗯,预料中的结果,多谢大家啦
页:
[1]