标题: STM8L低功耗 RTC和按键唤醒+串口发送ADC数据, 唤醒后串口波特率不对,发送... [打印本页]

作者: xiaoheiniu029    时间: 2021-6-23 10:07
标题: STM8L低功耗 RTC和按键唤醒+串口发送ADC数据, 唤醒后串口波特率不对,发送...
  项目情况:     STM8L051F3 用的内部晶振,3.3V电池供电。PB0\PB1\PB2\PB3引脚接4个按键,串口用PA2\PA3.    采用ACTIVE HALT低功耗模式。
                        用RTC和pb引脚的4个线中断来唤醒低功耗模式。   然后ADC采集电压,通过串口发送出去。
  出现问题:     唤醒后串口波特率不对,发送数据不对。      电流一直在毫安级。  
void main(void)
{
  disableInterrupts();            //关闭系统总中断
  CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); //内部时钟为1分频 = 16Mhz
  RTC_CLOCK_Init();
  PWR_FastWakeUpCmd(ENABLE);  //快速唤醒使能
  CLK_HaltConfig(CLK_Halt_FastWakeup, ENABLE);
  IO_Config();
  UART1_Init(9600);

  USART_SendData8(USART1 , 0x55);   
  RTC_ITConfig(RTC_IT_WUT, ENABLE);//唤醒定时器中断使能
  RTC_WakeUpCmd(ENABLE);//RTC唤醒使能
  enableInterrupts();   //使能系统总中断
PWR_UltraLowPowerCmd(ENABLE);//超低功耗


    while (1)
  {
   CLK_PeripheralClockConfig(CLK_Peripheral_USART1 , DISABLE);
    RTC_SetWakeUpCounter(9150);
    RTC_WakeUpCmd(ENABLE);

    CLK_PeripheralClockConfig (CLK_Peripheral_ADC1,DISABLE);//开启ADC时钟
    ADC_Cmd(ADC1,DISABLE);//ADC1使能
    CLK_PeripheralClockConfig(CLK_Peripheral_USART1 , DISABLE); //使能USART1时钟
    USART_Cmd (USART1,DISABLE);//使能USART
    USART_ClearITPendingBit(USART1,USART_IT_RXNE);

    halt();
     Delay(1000);
    UART1_Init(9600);
     IO_Config();
      if(WAKRUP_flag>0X87)  
    {      


      Delay(1000);


      key_number=GPIO_ReadInputData(GPIOB);
      key_number=key_number&0x0F;

      USART_SendData8(USART1 , WAKRUP_flag);
       Delay(100);
       USART_SendData8(USART1 , key_number&0x0F);
        Delay(100);
      WAKRUP_flag=0;
    }
    if(RTC_flag==0X44)  
    {
       ADC_initc();
      RTC_flag=0;   
      Delay(100);

      key_number=GPIO_ReadInputData(GPIOB);
      key_number=key_number&0x0F;

      USART_SendData8(USART1 , 0xAA);
      ADCdata_get();   
      Delay(100);
      sendbyte(VoltageValue>>8);
      Delay(100);
      sendbyte(VoltageValue);
      Delay(200);
      sendbyte(key_number);
      Delay(200);         
      USART_SendData8(USART1 , 0xEE);   
      Delay(200);  
    }


  }
}


作者: yzwzfyz    时间: 2021-6-23 15:22
自己先画个流程图,走通流程图再讨论你的程序。
程序习惯不好。
作者: kimoye    时间: 2021-6-23 15:30
我寻思波特率不对,这不改改波特率试一下?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1