OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6245|回复: 2

串口问题求解!!!!!!!!

[复制链接]

14

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2012-11-19
在线时间
3 小时
发表于 2014-7-11 11:47:31 | 显示全部楼层 |阅读模式
5金钱
串口为什么没有清除发送中断和清除接收中断的标志呀!而外部中断为什么就会清除中断呢?
void USART1_IRQHandler(void)
{
   if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) 
   {

USART_SendData(USART1,USART_ReceiveData(USART1));
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);
   }
 
}

void EXTI2_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line2)==SET)
  {
    EXTI_ClearITPendingBit(EXTI_Line2); 

delay_ms(10); 

if(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2)==Bit_RESET)
{
if(GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_5)==Bit_RESET)
{

  GPIO_SetBits(GPIOB,GPIO_Pin_5);
}
else
{

GPIO_ResetBits(GPIOB,GPIO_Pin_5);
}
}
  }
}
这是为什么?



最佳答案

查看完整内容[请看2#楼]

默认硬件自动清除,你看下寄存器手册
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2014-7-11 11:47:32 | 显示全部楼层
默认硬件自动清除,你看下寄存器手册
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复

使用道具 举报

14

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2012-11-19
在线时间
3 小时
 楼主| 发表于 2014-7-12 10:46:51 | 显示全部楼层
还是谢谢你给我的提示,现在我弄懂了。
我看了手册,发现一句这样的话      对USART_DR的读操作可以将改位清零
而库函数我uint16_t USART_ReceiveData(USART_TypeDef* USARTx)
{
  /* Check the parameters */
  assert_param(IS_USART_ALL_PERIPH(USARTx));
  
  /* Receive Data */
  return (uint16_t)(USARTx->DR & (uint16_t)0x01FF);
}
有一个USARTx->DR读寄存器的操作。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-6 06:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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