打印

UART中断的问题

[复制链接]
1939|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
csest|  楼主 | 2008-7-1 09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 /* Configure the USART1 */
  USART_Init(USART1, &USART_InitStructure);

  /* Enable the USART Transmoit interrupt: this interrupt is generated when the 
     USART1 transmit data register is empty */  
  USART_ITConfig(USART1, USART_IT_TXE, ENABLE);
怎么执行到上面这句就直接进入UART_IT_TXE中断啦,还没有发送数据啊,也没接收数据,
um0427FWLibexamplesUSARTHyperTerminal_Interrupt中的例子,不解,麻烦大虾解释下,谢谢!
沙发
香水城| | 2008-7-1 09:47 | 只看该作者

这是对的

/* Enable the USART Transmoit interrupt: this interrupt is generated when the 
     USART1 transmit data register is empty */  
  USART_ITConfig(USART1, USART_IT_TXE, ENABLE);

当发送数据寄存器为空时将产生这个中断,还没有发送数据时,发送数据寄存器为空肯定为空,所以产生中断。

使用特权

评论回复
板凳
csest|  楼主 | 2008-7-1 09:59 | 只看该作者

USART_IT_TXE是UART发送中断吧

USART_IT_TXE是UART发送完中断吧,
好象没有发送数据寄存器为空的中断哦,
香主帮看看呢

使用特权

评论回复
地板
香水城| | 2008-7-1 10:05 | 只看该作者

你仔细看看那段英文注释,就是我说的意思

使用特权

评论回复
5
kfawj| | 2008-7-8 15:40 | 只看该作者

新问题,中断进不去

USART_InitStructure.USART_BaudRate = 9600;
  USART_InitStructure.USART_WordLength = USART_WordLength_9b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_Even;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  USART_InitStructure.USART_Clock = USART_Clock_Disable;
  USART_InitStructure.USART_CPOL = USART_CPOL_Low;
  USART_InitStructure.USART_CPHA = USART_CPHA_2Edge;
  USART_InitStructure.USART_LastBit = USART_LastBit_Disable;
  USART_Init(USART3,&USART_InitStructure);
  USART_Cmd(USART3,ENABLE);
  USART_ITConfig(USART3, USART_IT_RXNE,ENABLE);
  USART_ITConfig(USART3, USART_IT_TXE,ENABLE);
  USART_ITConfig(USART3, USART_IT_TC,ENABLE);

//中断进不去,这样设置对吗?(现在只是发数)
//主程中用“   USART_SendData(USART3, 0x55);”向外发数据

使用特权

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

本版积分规则

30

主题

59

帖子

0

粉丝