[STM8] STM8S207S8T6 PD6 端口不能置高问题

[复制链接]
1372|6
 楼主| feihu8088 发表于 2016-6-30 13:23 | 显示全部楼层 |阅读模式
求助一下,PD6 端口 没有办法置高
//GPIO端口配置
void GPIO_Init(void)
{
    //PD7--SDA  PD6--SCK
    PD_DDR |= 0x40;
    PD_CR1 |= 0x40;
    PD_CR2 &= ~( 0x40);
}

void main (void)
{
  
    asm("sim");                //先关闭总中断
    GPIO_Init();
    asm("rim");                //打开总中断
            
    while(1)
    {
         //IWDG_KR = 0xAA;       //喂狗


      PD_ODR |= 0x40  ;   
      PD_ODR &= ~0x40;
        delay(20);
    }
}

单步跟踪 看到寄存器边了,但是 端口输出一直是低电平,有没有朋友遇到过这样的问题
gmgmgm 发表于 2016-6-30 13:46 | 显示全部楼层
//PD7--SDA  PD6--SCK  这两端口是标准的I2C端口,内部没有上拉需要外接上拉电阻,外面引脚接上拉电阻就可以置高电平了。不接上拉电阻就是开漏形式
flove00 发表于 2016-6-30 13:53 | 显示全部楼层
PD_ODR &= ~0x40;  你把它至低电平 ,它怎么输出高电平??
dzguang 发表于 2016-6-30 15:04 | 显示全部楼层
二楼说的相当明白了,你开漏的口,怎么可能输出高呢?它输出的是高阻,需要用一个上拉的~
quray1985 发表于 2016-6-30 16:25 | 显示全部楼层
gmgmgm 发表于 2016-6-30 13:46
//PD7--SDA  PD6--SCK  这两端口是标准的I2C端口,内部没有上拉需要外接上拉电阻,外面引脚接上拉电阻就可 ...

原来是这样,不是所有的IO口用法都一样啊
 楼主| feihu8088 发表于 2016-7-2 09:13 | 显示全部楼层
谢谢,各位热心的解答,
首先我要说明的是,PD6 PD7 不是I2C接口,是我模拟I2C用的,可能大家误解了
现在测试情况是PD6 无法拉高 是不是与PD6的复用引脚UART3 有关?我关掉UART3 还是无法拉高,PD7是可以置高,置低的.
dentsgot 发表于 2016-7-3 21:18 | 显示全部楼层
不知道有没有试过,加了外部的上拉电阻之后能不能置高呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部