找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 499|回复: 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 单片机教程网

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