打印
[STM8]

新手请教stm8s00f3端口输入设置出现的问题

[复制链接]
2962|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Coobila|  楼主 | 2013-5-27 23:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Coobila 于 2013-5-27 23:10 编辑

看见stm8性价比很高,最近就开始学习和使用它。以为8位不难,不过这IO设置就给了我一个下马威。问题是这样的,我的核心小板的端口输出都没什么问题,但是设置为输入时,不管怎样设置都不起作用。使用内部晶振,16M不分频。代码如下:
void main(void)
{
        CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
        
        /* PD2 input pullup */
        GPIOD->CR1 |= (1 << 2);
        GPIOD->CR2 &= ~(1 << 2);
        GPIOD->DDR &= ~(1 << 2);
        while(1 == (GPIOD->IDR & GPIO_PIN_2));
        while(0 == (GPIOD->IDR & GPIO_PIN_2));

        GPIO_Init(GPIOD, GPIO_PIN_2, GPIO_MODE_IN_PU_NO_IT);
        while(1 == GPIO_ReadInputPin(GPIOD, GPIO_PIN_2));
        while(0 == GPIO_ReadInputPin(GPIOD, GPIO_PIN_2));
        
        /* Infinite loop */
        while (1)
        {
        }
  
}
我用st-link时,发现每次都可以跑到while(1)循环处。输入上拉不是默认为高吗?为何此处它既不是高,又不是低?求大虾指点一下啊,这都折腾好几天了 。。。附件是我的IAR工程代码。
stm8s_demo.zip (798.32 KB)


沙发
jamsan| | 2013-5-28 09:19 | 只看该作者
不是即不是高,又不是低。而是即有过高,也有过低。IO口不会是有输入电平变化吧?

使用特权

评论回复
板凳
Coobila|  楼主 | 2013-5-28 09:55 | 只看该作者
jamsan 发表于 2013-5-28 09:19
不是即不是高,又不是低。而是即有过高,也有过低。IO口不会是有输入电平变化吧? ...

核心板,没有外接任何东西。io都是悬空的,难道芯片坏了?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

30

帖子

0

粉丝