欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2443|回復: 2
打印 上一主題 下一主題
收起左側

STM8L低功耗 RTC和按鍵喚醒+串口發送ADC數據, 喚醒后串口波特率不對,發送...

[復制鏈接]
跳轉到指定樓層
樓主
ID:409831 發表于 2021-6-23 10:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  項目情況:     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);  
    }


  }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:123289 發表于 2021-6-23 15:22 | 只看該作者
自己先畫個流程圖,走通流程圖再討論你的程序。
程序習慣不好。
回復

使用道具 舉報

板凳
ID:811711 發表于 2021-6-23 15:30 | 只看該作者
我尋思波特率不對,這不改改波特率試一下?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表