你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L0停机唤醒模式求助?????????

[复制链接]
化雨眠 提问时间:2014-9-19 16:20 /
先交代一下背景:
                 最近在做这么一个测试,stm32L053进入停机模式,配置stm32的两个串口互相转发数据,并返回到PC端的调试助手。串口使用的是中断接收,
            我看了一下文档,说是外部事件可以唤醒,所以,就没有添加按键中断。
            
            贴一下源码:
            //串口UART1 中断接收
            void USART1_IRQHandler(void)
            {
                  HAL_UART_IRQHandler(&UartHandle);
                  flag_uart1=1;//标志在主函数里面发送数据
                 //如果串口1接收到数据,则通过串口2将串口1接收的数据回发到PC端
                 TxBuffer2[0]=aRxBuffer[0];
                 HAL_UART_Receive_IT(&UartHandle,(uint8_t *)aRxBuffer,1);//使能接收中断
            }
            //串口UART2 中断接收
            void USART2_IRQHandler(void)
            {
                     HAL_UART_IRQHandler(&Uart2Handle);//中断服务函数
                     flag_uart2=1;        //标志在主函数里面发送数据
                    //如果串口2接收到数据,则通过串口1将串口2接收的数据回发到PC端
                    aTxBuffer[0]=RxBuffer2[0];//将数据保存至缓存        
                    HAL_UART_Receive_IT(&Uart2Handle,(uint8_t *)RxBuffer2,1);//使能接收中断
            }
            
            int main(void)
            {
                HAL_Init();//硬件抽象层初始化
                SystemClock_Config();
                SystemPower_Config();
                    
                      USART1_Init();//串口 UART1
                      USART2_Init();//串口 UART2               
                            while(1)
                            {                                       
                                            if( (flag_uart1==1) || (flag_uart2==1))//如果中断接收了数据
                                            {                                       
                                                            if(flag_uart1==1)
                                                            {
                                                                            flag_uart1=0;
                                                                            //如果串口1接收到数据,则通过串口2将串口1接收的数据回发到PC端                                                        
                                                                            HAL_UART_Transmit(&Uart2Handle,(uint8_t *)TxBuffer2,1,100);                                                
                                                            }
                                                            if(flag_uart2==1)
                                                            {
                                                                            flag_uart2=0;
                                                                            //如果串口2接收到数据,则通过串口1将串口2接收的数据回发到PC
                                                                            HAL_UART_Transmit(&UartHandle,(uint8_t *)aTxBuffer,1,100);                                                         
                                                            }
                                            }
                                    HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFE);        //进入停机模式,等待外部事件唤醒               
                                    SystemClockConfig_STOP();//唤醒后时钟的配置,参考了库函数的代码                                                                
                            }
            }
收藏 评论1 发布时间:2014-9-19 16:20

举报

1个回答
回答时间:2014-9-20 09:01:35

RE:STM32L0停机唤醒模式求助?????????

楼主遇到什么问题了呢?能把问题详细说一下吗?

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版