[应用相关] 串口初始化问题

[复制链接]
 楼主| 发表于 2018-9-3 21:55 | 显示全部楼层 |阅读模式
串口初始化的时候为什么只打开接收中断使能,而不能打开发送中断使能?
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();
}
发表于 2018-9-3 22:01 | 显示全部楼层
中断一定要记得是能哦,而不是注释掉。
发表于 2018-9-3 22:01 | 显示全部楼层
UCA1IE |= UCRXIE;                         // Enable USCI_A1 RX interr
你的程序本身也只打开接受中断
发表于 2018-9-3 22:04 | 显示全部楼层

你这个用的是RS485的还是?
发表于 2018-9-3 22:04 | 显示全部楼层
一般AURT的话接收跟发送是相互独立的。
发表于 2018-9-3 22:08 | 显示全部楼层
这个不应该的吧,该方式的基本不会出问题的。
发表于 2018-9-3 22:08 | 显示全部楼层
发送中断如果是‘发送buffer空中断’,则在初始化的时候不需要打开,只有在发送数据时才打开,而且在判断没有数据可发的时候还要关闭,否则会一直进中断
发表于 2018-9-3 22:12 | 显示全部楼层
如果是‘发送完成中断’,则在初始化的时候可以打开,需要看具体芯片的发送中断是哪种
发表于 2018-9-3 22:12 | 显示全部楼层
楼主可以看看管网给出的例程
发表于 2018-9-3 23:00 | 显示全部楼层
可以printf 输出
发表于 2018-9-3 23:00 | 显示全部楼层
串口配置没有什么难度吧
发表于 2018-9-4 06:32 | 显示全部楼层
不是不能  而是不需要
发表于 2018-9-4 09:05 | 显示全部楼层
没有任何规定不可以啊
发表于 2018-9-4 09:58 | 显示全部楼层
发送完成中断可以打开
发表于 2018-9-4 21:35 | 显示全部楼层
是啊,进入中断关闭是对的,但是退出时候要再开启,要不没有法进行后面的重复工作了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

161

主题

1233

帖子

1

粉丝
快速回复 返回顶部 返回列表