解决IAR中的变量被设置但从来不用的警告

#pragma vector=0x14
__interrupt void UART1_RX_IRQHandler(void)//UART1接收寄存器满中断
{
  u8 RX_temp;

  if(UART1_GetITStatus(UART1_IT_RXNE)!=RESET)//UART1接收数据寄存器不为空中断
  {
    RX_temp=UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE,IDLE,RXNE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
    UART1_ClearFlag(UART1_FLAG_RXNE);//清除UART1接收完成标志位
  }
  if(UART1_GetFlagStatus(UART1_FLAG_PE) != RESET)//奇偶校验错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE,IDLE,RXNE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
  if( UART1_GetITStatus(UART1_IT_OR) != RESET)//溢出错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
  if(UART1_GetFlagStatus(UART1_FLAG_FE) != RESET)//帧错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
}
#endif

Warning[Pe550]: variable "RX_temp" was set but never used D:\STM8S207RB程序\7串口UART1_To_printf\user\stm8s_interruput.c 146 
 

修改如下,RX_temp就不会报警了

#pragma vector=0x14
__interrupt void UART1_RX_IRQHandler(void)//UART1接收寄存器满中断
{
  u8 RX_temp=0;//必须初始化
  (void)RX_temp;//清除"RX_temp" was set but never used的警告

  if(UART1_GetITStatus(UART1_IT_RXNE)!=RESET)//UART1接收数据寄存器不为空中断
  {
    RX_temp=UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE,IDLE,RXNE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
    UART1_ClearFlag(UART1_FLAG_RXNE);//清除UART1接收完成标志位
  }
  if(UART1_GetFlagStatus(UART1_FLAG_PE) != RESET)//奇偶校验错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE,IDLE,RXNE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
  if( UART1_GetITStatus(UART1_IT_OR) != RESET)//溢出错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
  if(UART1_GetFlagStatus(UART1_FLAG_FE) != RESET)//帧错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
}
#endif

#include "stm8s.h"//包含CPU头文件,使能int8_t,int16_t,int32_t,uint8_t,uint15_t,uint32_t,s8,s16,s32,u8,u16,u32,bool

#pragma vector=1  //设置中断向量为1
__interrupt void TRAP_IRQHandler(void)//软件中断
{
  
}
#pragma vector=2
__interrupt void TLI_IRQHandler(void) //外部最高级中断
{
  
}
#pragma vector=3
__interrupt void AWU_IRQHandler(void)  //自动唤醒HALT模式中断
{
  
}
#pragma vector=4
__interrupt void CLK_IRQHandler(void)  //时钟控制器
{

}
#pragma vector=5
__interrupt void EXTI_PORTA_IRQHandler(void) //端口A外部中断
{
  
}
#pragma vector=6
__interrupt void EXTI_PORTB_IRQHandler(void) ///端口B外部中断
{
  
}
#pragma vector=7
__interrupt void EXTI_PORTC_IRQHandler(void) //端口C外部中断
{
  
}
#pragma vector=8
__interrupt void EXTI_PORTD_IRQHandler(void)  //端口D外部中断
{

  
  
}

#pragma vector=9
__interrupt void EXTI_PORTE_IRQHandler(void)  //端口E外部中断
{
}

#ifdef STM8S903
#pragma vector=0xA
__interrupt void EXTI_PORTF_IRQHandler(void) //端口F外部中断
{
  
}
#endif
#ifdef STM8S208
#pragma vector=0xA
__interrupt void CAN_RX_IRQHandler(void)  //CAN RX 中断
{
  
}
#pragma vector=0xB
__interrupt void CAN_TX_IRQHandler(void) //CAN TX/ER/SC中断
{
  
}
#endif
#pragma vector=0xC
__interrupt void SPI_IRQHandler(void) //SPI发送完成中断
{
  
}
#pragma vector=0xD
__interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void) //TTM1更新/上溢出/下溢出/触发/刹车
{
//  UART1_RX_END();
  TIM1_ClearITPendingBit(TIM1_IT_UPDATE);//清除TIM1中断标志
}
#pragma vector=0xE
__interrupt void TIM1_CAP_COM_IRQHandler(void) //TIM1捕获/比较
{
  
}
#ifdef STM8S903
#pragma vector=0xF
__interrupt void TIM5_UPD_OVF_BRK_TRG_IRQHandler(void)//TTM5更新/上溢出/下溢出/触发/刹车
{
  
}
#pragma vector=0x10
__interrupt void TIM5_CAP_COM_IRQHandler(void)//TIM5捕获/比较
{
  
}
#else
#pragma vector=0xF
__interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void)//TTM2更新/上溢出/下溢出/触发/刹车
{
     
}
#pragma vector=0x10
__interrupt void TIM2_CAP_COM_IRQHandler(void)//TIM2捕获/比较
{
  
}
#endif
#if defined (STM8S208) || defined(STM8S207) || defined(STM8S105)
#pragma vector=0x11
__interrupt void TIM3_UPD_OVF_BRK_IRQHandler(void)//TTM3更新/上溢出/下溢出/触发/刹车
{
  
}
#pragma vector=0x12
__interrupt void TIM3_CAP_COM_IRQHandler(void)//TIM3捕获/比较
{
  
}
#endif
//#ifndef STM8S105
#if defined (STM8S208) || defined(STM8S207) || defined(STM8S105)
#pragma vector=0x13
__interrupt void UART1_TX_IRQHandler(void)//UART1发送完成中断
{
  if(UART1_GetITStatus(UART1_IT_TXE) != RESET)//UART1发送数据寄存器为空中断
  {
    //发送"非最后一个字节"时
    //UART1_SendData8(UART1_TX_Buffer[0);
      //将UART1_TX_Buffer[UART1_TX_Buffer_Send_Index]通过发送出去
      //发送UART1_SendData8()或UART1_SendData9()会自动清除TXE位和TC位

    //发送"最后一个字节"时
      //UART1_ITConfig(UART1_IT_TXE, DISABLE);//关闭"UART1发送数据寄存器空中断"
      //UART1_ITConfig(UART1_IT_TC, ENABLE);//使能"UART1发送完成中断"
  }
  if(UART1_GetITStatus(UART1_IT_TC) != RESET)//UART1发送完成中断
  {
    UART1_ITConfig(UART1_IT_TC, DISABLE);//关闭"UART1发送完成中断"
  }  
}
#pragma vector=0x14
__interrupt void UART1_RX_IRQHandler(void)//UART1接收寄存器满中断
{
  u8 RX_temp=0;//必须初始化
  (void)RX_temp;//清除"RX_temp" was set but never used的警告

  if(UART1_GetITStatus(UART1_IT_RXNE)!=RESET)//UART1接收数据寄存器不为空中断
  {
    RX_temp=UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE,IDLE,RXNE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
    UART1_ClearFlag(UART1_FLAG_RXNE);//清除UART1接收完成标志位
  }
  if(UART1_GetFlagStatus(UART1_FLAG_PE) != RESET)//奇偶校验错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE,IDLE,RXNE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
  if( UART1_GetITStatus(UART1_IT_OR) != RESET)//溢出错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
  if(UART1_GetFlagStatus(UART1_FLAG_FE) != RESET)//帧错误标志
  {
    UART1_ReceiveData8();
    //接收一个8位数据
    //执行UART1_ReceiveData8()或UART1_ReceiveData9()会清除FE,OR,PE位
    UART1_ClearITPendingBit(UART1_IT_RXNE);//清除"UART1接收数据寄存器不为空中断标志"
  }
}
#endif
#pragma vector=0x15
__interrupt void I2C_IRQHandler(void)//I2C中断
{
  
}
#ifdef STM8S105
#pragma vector=0x16
__interrupt void UART2_TX_IRQHandler(void)//UART2发送完成中断
{
   
}
#pragma vector=0x17
__interrupt void UART2_RX_IRQHandler(void)//UART2接收寄存器满中断
{
   
}
#endif
#if defined(STM8S207) || defined(STM8S208)
#pragma vector=0x16
__interrupt void UART3_TX_IRQHandler(void)//UART3发送完成中断
{
  
}
#pragma vector=0x17
__interrupt void UART3_RX_IRQHandler(void)//UART3接收寄存器满中断
{
  
}
#endif
#if defined(STM8S207) || defined(STM8S208)
#pragma vector=0x18
__interrupt void ADC2_IRQHandler(void)//ADC2转换结束中断
{
   
}
#else
#pragma vector=0x18
__interrupt void ADC1_IRQHandler(void)//ADC1转换结束中断
{
   
}
#endif
#ifdef STM8S903
#pragma vector=0x19
__interrupt void TIM6_UPD_OVF_TRG_IRQHandler(void)//TTM6更新/上溢出/下溢出/触发/刹车
{
  
}
#else
#pragma vector=0x19
__interrupt void TIM4_UPD_OVF_IRQHandler(void)//TTM5更新/上溢出/下溢出/触发/刹车
{
  
}
#endif
#pragma vector=0x1A
__interrupt void EEPROM_EEC_IRQHandler(void)//编程结束/禁止编程
{
  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值