STM8S207C8T6串口3无法接收数据

2019-07-19 21:09发布

stm8s207c8t6串口3出现无法接受数据的现象  但定时器却能正常运行 下面是我的配置 看有错吗
 void TIM1_Init(void)
{
        TIM1_DeInit();                                          //定时器1相关寄存器复位
        /* param: 分频系数 向上计数 自动重载计数周期值 */
      //  TIM1_TimeBaseInit(64, TIM1_COUNTERMODE_UP, 125*100, 0);     //中断时间100ms 
         TIM1_TimeBaseInit(7, TIM1_COUNTERMODE_UP, 9999, 0);     //中断时间10ms  
        // TIM1_TimeBaseInit(8, TIM1_COUNTERMODE_UP, 1500, 0);     //中断时间ms  
        TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE);  
        ITC_SetSoftwarePriority(ITC_IRQ_TIM1_OVF, ITC_PRIORITYLEVEL_2);//设置d定时器中断优先级 2  
        TIM1_Cmd(ENABLE); //使能TIM1
}

/*! @function
********************************************************************************
<RE>
函数名   :TIM2_Init
功能     :485通信管理50ms
说明     :Sys_Clk/(8)x(19999+1) = 20ms
*******************************************************************************/
void TIM2_Init(void)
{
      TIM2_DeInit();
      TIM2_TimeBaseInit(TIM2_PRESCALER_1, 125*20);//20ms中断
      TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);          //使能中断
      ITC_SetSoftwarePriority(ITC_IRQ_TIM2_OVF, ITC_PRIORITYLEVEL_2);//设置d定时器中断优先级 2
      TIM2_Cmd(ENABLE);//使能定时器1 
 
}
void  UART_Init3()
{    
    UART3_DeInit();
    UART3_ITConfig(UART3_IT_TXE, DISABLE);                //关串口发送中断
    UART3_ITConfig(UART3_IT_TC , DISABLE);                //关串口发送结束中断
    UART3_ITConfig(UART3_IT_RXNE_OR, ENABLE); //使能溢出错误检测标志位 
    UART3_Init((u32)9600, UART3_WORDLENGTH_8D, UART3_STOPBITS_1, UART3_PARITY_NO, UART3_MODE_TXRX_ENABLE);
    UART3_Cmd(ENABLE);   //打开串口接收中断
}
  #pragma vector=ITC_IRQ_UART3_RX + 2
    
  __interrupt void Uart3RxdInt(void)
  { //此函数内已完成清中断标志
     u8  ret;
    if(UART3_GetITStatus(UART3_IT_RXNE)==SET)
    {
     tmp=UART3_ReceiveData8();
     ret=UART_KbdPkgRead(tmp);
     if(ret==0)
      {
      KBD_Flag_RECE=1;//当标志位为1时说明已经接收1包数据 定时器响应后判断此标志位
      }
   UART3_GetFlagStatus(UART3_FLAG_OR_LHE );
    }
  }
串口3和定时器1 2 的优先级都一样,求助
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。