UART中断的问题

[复制链接]
2824|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 | 显示全部楼层

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

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

粉丝
快速回复 在线客服 返回列表 返回顶部