打印

各位大神给看一看,PIC30f4011的发送中断的问题

[复制链接]
2331|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tulufan234|  楼主 | 2014-7-14 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

void UART_init(void)
{
  U2MODEbits.ALTIO=0;    //使用引脚U2Tx和U2RX      
  U2MODEbits.PDSEL=0;    //8位数据 无奇偶校验位
  U2MODEbits.STSEL=0;    //1位停止位
  U2BRG=436;              //波特率设为1000
  U2STAbits.UTXISEL=0; //当一个字符被传送到发送移位寄存器 产生中断
  U2STAbits.URXISEL=0;   //接收完一个字符产生一次中断
  IEC1bits.U2RXIE=1;     //接收中断允许
  IEC1bits.U2TXIE=1;     //发送中断允许
  IFS1bits.U2TXIF=0;     
  IFS1bits.U2RXIF=0;    //清中断标志
  IPC6bits.U2RXIP=2;    //接收中断优先级为2
  IPC6bits.U2TXIP=2;    //发送中断优先级为2
  U2MODEbits.UARTEN=1;  //使能UART模块
  U2STAbits.UTXEN=1;       // 使能UART发送
  U2TXREG=0xff;        //启动发送 发送0xff
}


void __attribute__((__interrupt__))_U2TXInterrupt(void)   //发送中断
{
    IFS1bits.U2TXIF=0;    // 清中断标志位
    while(U2STAbits.TRMT==0);    //等待发送完成
    U2TXREG =data1[TX_n];  //    写发送寄存器   
    TX_n++;      
}
为什么 程序总是在发送中断中while(U2STAbit.TRMT==0)中一直循环,出不来呢?
沙发
tulufan234|  楼主 | 2014-7-14 17:05 | 只看该作者
自己先顶一下,期待大神给解答

使用特权

评论回复
板凳
yklstudent| | 2014-7-14 18:40 | 只看该作者
中断发送根本就不需要查询的 你只需要写

使用特权

评论回复
地板
tdh03z| | 2014-7-14 21:50 | 只看该作者
还有,你的发送中断中,怎么没有结束判断啊,难道串口一直发送。

应该加上发送长度或发送尾字符的判断吧,为真时,停止发送中断,等待下一次开启

使用特权

评论回复
5
yewuyi| | 2014-7-15 11:53 | 只看该作者
发送产生中断时,就已经代表发送完成了。

使用特权

评论回复
6
tulufan234|  楼主 | 2014-7-23 16:57 | 只看该作者
yklstudent 发表于 2014-7-14 18:40
中断发送根本就不需要查询的 你只需要写

那接收时会不会发生帧错误

使用特权

评论回复
7
tulufan234|  楼主 | 2014-7-24 16:46 | 只看该作者
yewuyi 发表于 2014-7-15 11:53
发送产生中断时,就已经代表发送完成了。

手册上说   数据从发送缓冲器传输到发送移位器中,就发生中断,TRMT=1才表示发送送完成啊

使用特权

评论回复
8
yewuyi| | 2014-7-24 17:03 | 只看该作者
只要EUSART 发送器被使能且TXREG中没有等待发送
的字符, PIR1 寄存器的TXIF 中断标志位就被置1。换
句话说,只有在TSR 正在处理字符且TXREG 中还有一
个排队等待发送的新字符时, TXIF 位才被清零。写入
TXREG 后并不立即清零TXIF 标志位,而是在之后的第
二个指令周期将其清零。写入TXREG 后立即查询TXIF
位将返回无效结果。TXIF 位是只读的,不能用软件置1
或清零。
将PIE1 寄存器的TXIE 中断允许位置1 可允许TXIF 中
断。但是,只要TXREG 为空,无论TXIE 中断允许位
的状态如何, TXIF 标志位就会被置1。
要在发送数据时使用中断,应只在仍有数据要发送时才
将TXIE 位置1。在将发送的最后一个字符写入TXREG
后应清零TXIE 中断允许位。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
tulufan234 + 1 神马都是浮云
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

8

帖子

0

粉丝