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

標題: proteus仿真stm32單片機上拉輸入無效嗎? [打印本頁]

作者: 百二秦關(guān)終屬我    時間: 2024-3-17 12:21
標題: proteus仿真stm32單片機上拉輸入無效嗎?

但是在我仿真的時候我發(fā)現(xiàn)這個按鍵接入的PC12和PC13口,默認是低電平。
但是我在配置這個端口的時候配置的是上拉輸入,按理說仿真是端口默認不該是高電平嗎?
然后我如果按鍵按下,端口就會輸入一個低電平,燈亮。
所以到底是我這個端口配置錯了,還是延時函數(shù)有問題,我不知道這個延時函數(shù)對不對。單片機主頻72Mhz。
現(xiàn)在我有疑問的點主要有兩個,一個是GPIO端口這個模式,應(yīng)該配置成上拉輸入嗎?
另一個是延時函數(shù),單片機主頻72Mhz,我要實現(xiàn)按鍵延時,KEY.C中的按鍵延時函數(shù)Delay_ms(20)對嗎?
求大神解答。

ex4_按鍵控制LED.zip

383.35 KB, 下載次數(shù): 4

源文件和仿真


作者: 百二秦關(guān)終屬我    時間: 2024-3-17 12:23
主程序
#include "stm32f10x.h"  // Device header
#include "Delay.h"
#include "LED.h"
#include "Key.h"

uint8_t Key_Num;

int main(void)
{
        LED_Init();       
        Key_Init();
        while(1)
        {
                LED1_OFF();
                LED2_OFF();
                Key_Num = Key_GetNum();
                if(Key_Num == 1)
                {
                        LED1_Turn();
                }
                if(Key_Num == 2)
                {
                        LED2_Turn();
                }
               
        }
       
}
按鍵控制程序
#include "stm32f10x.h"                  // Device header
#include "Delay.h"

void Key_Init(void)
{
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //使能GPIOC時鐘
       
        GPIO_InitTypeDef GPIO_InitStructure;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //配置為上拉輸入
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //GPIOC速度為50MHz
       
        GPIO_Init(GPIOC, &GPIO_InitStructure);   //初始化PC口
}

uint8_t Key_GetNum(void)
{
        uint8_t KeyNum = 0;
        if(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_12)==0)
        {
                Delay_ms(20);
                while(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_12)==0)
                {
                        Delay_ms(20);
                        KeyNum = 1;
                }
        };
        if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13)==0)
        {
                Delay_ms(20);
                while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13)==0)
                {
                        Delay_ms(20);
                        KeyNum = 2;
                }
        }
       
        return KeyNum;
}

Snipaste_2024-03-17_12-22-40.png (28.33 KB, 下載次數(shù): 80)

仿真圖

仿真圖

作者: Hephaestus    時間: 2024-3-17 17:47
如果仿真是上拉,那么現(xiàn)在的現(xiàn)象就是無法仿真這個特征。
作者: 百二秦關(guān)終屬我    時間: 2024-3-17 22:52
Hephaestus 發(fā)表于 2024-3-17 17:47
如果仿真是上拉,那么現(xiàn)在的現(xiàn)象就是無法仿真這個特征。

好吧,那看來就是proteus有bug。

作者: Hephaestus    時間: 2024-3-18 01:32
百二秦關(guān)終屬我 發(fā)表于 2024-3-17 22:52
好吧,那看來就是proteus有bug。

也不能說有bug,確切的說是模型不完備。
作者: nxplpcexpresso    時間: 2024-3-20 10:28
10K電阻不是這么用的。上拉接VCC
作者: nxplpcexpresso    時間: 2024-3-20 10:30
開關(guān)直接一端接I/O口,另一端接GND.




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1