打印

串口初始化的时候为什么只打开接收中断使能,而不能打开发送中断使能?

[复制链接]
2249|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhanghqi|  楼主 | 2018-9-3 16:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
shimx| | 2018-9-3 16:46 | 只看该作者

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
zhanghqi|  楼主 | 2018-9-3 16:50 | 只看该作者

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();
}

使用特权

评论回复
地板
jiajs| | 2018-9-3 16:55 | 只看该作者
程序我没仔细看,但中断一定要记得是能哦,而不是注释掉。

使用特权

评论回复
5
zhenykun| | 2018-9-3 16:58 | 只看该作者

UCA1IE |= UCRXIE;                         // Enable USCI_A1 RX interr
你的程序本身也只打开接受中断

使用特权

评论回复
6
zhanghqi|  楼主 | 2018-9-3 17:02 | 只看该作者
嗯,我知道了

使用特权

评论回复
7
jlyuan| | 2018-9-3 17:06 | 只看该作者
你这个用的是RS485的还是?

使用特权

评论回复
8
lizye| | 2018-9-3 17:09 | 只看该作者
一般AURT的话接收跟发送是相互独立的。

使用特权

评论回复
9
shimx| | 2018-9-3 17:12 | 只看该作者

不会吧,这种情况的我还没注意到的

使用特权

评论回复
10
dengdc| | 2018-9-3 17:17 | 只看该作者
这个不应该的吧,该方式的基本不会出问题的。

使用特权

评论回复
11
jiahy| | 2018-9-3 17:25 | 只看该作者
发送中断如果是‘发送buffer空中断’,则在初始化的时候不需要打开,只有在发送数据时才打开,而且在判断没有数据可发的时候还要关闭,否则会一直进中断;如果是‘发送完成中断’,则在初始化的时候可以打开,需要看具体芯片的发送中断是哪种

使用特权

评论回复
12
zhanghqi|  楼主 | 2018-9-3 17:28 | 只看该作者

其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先

使用特权

评论回复
13
dirtwillfly| | 2018-9-3 20:58 | 只看该作者
楼主用的是自发自收的演示程序吗?
楼主可以看看管网给出的例程

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

11757

帖子

5

粉丝