久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1622|回復(fù): 4
收起左側(cè)

stm32f的單片機PA0_WARK口喚醒單片機后能否作為普通IO口?

[復(fù)制鏈接]
ID:370644 發(fā)表于 2023-12-30 17:28 | 顯示全部樓層 |閱讀模式
stm32f的單片機PA0_WARK口喚醒單片機后能否作為普通IO口?這個問題,因為實際中應(yīng)用,困擾我3天,我差一點就要放棄了,后來野火哥,提醒了一下我,原子程序誤導(dǎo)人,我服了。
功能說明:正常時,我們進入待機模式,全部停止工作了,電流只有2.2UA,實測有10UA,然后用PA0喚醒后,我要將這個IO口作為普通GPIO,就是這個IO在待機要能有喚醒功能,喚醒后,就要變成普通作輸入的IO口。非常奇怪的是,待機正常,也能喚醒,喚醒后,就是作不了普通IO,它上面電平一直為0,非常奇怪。整整搞了3天,都要瘋掉了。因為初學(xué),所以踩坑是必然,只是太久了一點。這程序問題點,最大的是不能在線仿真,因為我們待機后,進入硬件仿真它會自動退出,所以非常麻煩,只能通過看代碼調(diào)試,具體代碼如下,過程中解釋得非常清楚了。希望能幫到大家,做產(chǎn)品還是要深入,只是看視頻學(xué)不到東西。視頻中就是實驗效果。

單片機源程序如下:
#include "stm32f10x.h"// Device header
#include "Delay.h"
#include "LED.h"
#include "OLED.h"
#include "Timer.h"
#include "sys.h"
uint16_t Num,dii;
int main(void)
{
        /*退出待機流程:1、先在主程序前面就要使能RCC_APB1Periph_PWR時鐘,很重要這一點2、按下PA0鍵復(fù)位 3、將此PA0腳設(shè)置為普通IO,即失能它的喚醒功能  3、初始化普通IO口 */                        
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//先使能這個時鐘,一定要在開機時你不能???
        PWR_WakeUpPinCmd (DISABLE);//失能喚醒功能,變?yōu)槠胀↖O
        LED_Init();//初始化普通IO
        Key_Init();
        OLED_Init();
        Timer_Init();
        OLED_ShowString(1, 1, "Num:");
        while (1)
        {
                OLED_ShowNum(1, 5, Num, 5);//在1行 5位置顯示Num值 顯示5位數(shù)
                OLED_ShowNum(2, 5, TIM_GetCounter(TIM2), 5);//顯示檢測定時器 它計數(shù)值
                if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 1)//將PA0當(dāng)作普通IO口,判斷它電平是否為高?
                {
                        if(Num<4)
                        {
                                LED1_Turn();
                                Delay_ms(500);
                                if(Num>=4)
                                {
                                        Num=0;
                                        /*待機流程:1、先將IO口失能,并將所有IO失能,降低功耗 2、將此PA0腳設(shè)置為喚醒功能 3、清除標(biāo)置位 4、進入待機*/
                                        RCC_APB2PeriphResetCmd(0X01FC,DISABLE);        //失能所有IO口,降低功耗
                                        PWR_WakeUpPinCmd(ENABLE);  //使能喚醒管腳功能
                                        PWR_ClearFlag (PWR_FLAG_WU);//清除標(biāo)志位
                                        PWR_EnterSTANDBYMode();//進入待命(STANDBY)模式
                                /*退出待機流程:1、先在主程序前面就要使能RCC_APB1Periph_PWR時鐘,很重要這一點2、按下PA0鍵復(fù)位 3、將此PA0腳設(shè)置為普通IO,即失能它的喚醒功能  3、初始化普通IO口 */                                       
                                }
                        }
                }
        }
}
/****************定時器中斷服務(wù)子函數(shù)***************/
void TIM2_IRQHandler(void)
{
        if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
        {
                dii++;
                if(dii>=1)
                {
                        dii=0;
                        Num++;
                }
                TIM_ClearITPendingBit(TIM2, TIM_IT_Update);//清除函數(shù)
        }
}
圖片.jpg

PA0喚醒后作普通IO口.7z

183.5 KB, 下載次數(shù): 0

視頻效果.rar

7.78 MB, 下載次數(shù): 0

回復(fù)

使用道具 舉報

ID:301191 發(fā)表于 2024-1-2 14:13 | 顯示全部樓層
頂一下
回復(fù)

使用道具 舉報

ID:192020 發(fā)表于 2024-1-2 14:32 | 顯示全部樓層
所以能不能作為普通IO用?感覺9.7uA待機電流挺大的
回復(fù)

使用道具 舉報

ID:301191 發(fā)表于 2024-1-5 13:04 | 顯示全部樓層
頂一下
回復(fù)

使用道具 舉報

ID:236035 發(fā)表于 2024-1-8 08:42 | 顯示全部樓層
已經(jīng)是PA0了,肯定能作為IO口啊
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 免费日韩av网站 | 久久亚洲一区 | 欧美群妇大交群中文字幕 | 午夜欧美 | 国产成人精品午夜视频免费 | 日韩三级在线 | 在线一区 | 久久精品中文字幕 | 午夜精品一区二区三区在线观看 | 不卡一二三区 | www久久爱 | 日韩欧美1区2区 | 欧美中文一区 | 国内自拍偷拍 | 一级网站| 久久av网| 亚洲精品片| 日韩精品一区二区三区中文字幕 | 久久久久久亚洲 | 91亚洲国产 | 求个av网址 | www.9191| 午夜欧美一区二区三区在线播放 | 亚洲精品视频在线播放 | 日韩欧美理论片 | 亚洲一级av毛片 | 国产精品毛片一区二区在线看 | 久久国产精品一区二区三区 | 狠狠躁18三区二区一区 | 亚洲精品久久久久久久久久久久久 | 天天看天天干 | 人操人人 | 国产aⅴ爽av久久久久久久 | 美女天堂 | 国产一区二区免费电影 | 羞视频在线观看 | 日韩午夜影院 | 日本亚洲一区 | 在线国产一区 | av一级在线观看 | 国产91精品久久久久久久网曝门 |