GT9147复位,INT浮空输入还是输出有什么区别?手册上说的浮空输入代码里的是浮空输出

2019-07-20 03:05发布

[mw_shl_code=c,true]u8 GT9147_Init(void)
{
        u8 temp[5];
        GPIO_InitTypeDef  GPIO_InitStructure;       
       
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC, ENABLE);//使能GPIOB,C时钟

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;//PB1设置为上拉输入
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//输入模式
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//上拉
  GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化
               
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;//PC13设置为推挽输出
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//输出模式
        GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化       
       
        CT_IIC_Init();              //初始化电容屏的I2C总线  
        GT_RST=0;                                //复位
        delay_ms(10);
        GT_RST=1;                                //释放复位                    
        delay_ms(10);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;//PB1设置为浮空输入
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//输出模式
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化       
        delay_ms(100);  
        GT9147_RD_Reg(GT_PID_REG,temp,4);//读取产品ID
        temp[4]=0;
        printf("CTP ID:%s ",temp);        //打印ID
        if(strcmp((char*)temp,"9147")==0)//ID==9147
        {
                temp[0]=0X02;                       
                GT9147_WR_Reg(GT_CTRL_REG,temp,1);//软复位GT9147
                GT9147_RD_Reg(GT_CFGS_REG,temp,1);//读取GT_CFGS_REG寄存器
                if(temp[0]<0X60)//默认版本比较低,需要更新flash配置
                {
                        printf("Default Ver:%d ",temp[0]);
                        GT9147_Send_Cfg(1);//更新并保存配置
                }
                delay_ms(10);
                temp[0]=0X00;         
                GT9147_WR_Reg(GT_CTRL_REG,temp,1);//结束复位   
                return 0;
        }
        return 1;
}[/mw_shl_code]

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;//PB1设置为浮空输入
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//输出模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化       
delay_ms(100);
QQ截图20160423163350.jpg
也没看到后面有哪里操作INT  那么这个浮空输入和浮空输出有什么影响呢,引脚分别呈现什么状态呢?我以前的理解是不管是浮空输入还是浮空输出引脚都是高阻状态相当于什么都没接,但是这里浮空输出可以正常运行浮空输入就不行,所以这浮空输入和输出引脚呈现的状态还是不一样的吧?那是怎么样的呢?渴望大神赐教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
xuande
1楼-- · 2019-07-20 05:34


无标题.png


看IO结构图,
上拉电阻和下拉电阻,其实与管脚的方向无关。

所以,也许注释应当这样说:使能上拉电阻,或者使能下拉电阻,或者浮空。


正点原子
2楼-- · 2019-07-20 08:52
 精彩回答 2  元偷偷看……
ct3paul
3楼-- · 2019-07-20 10:08
 精彩回答 2  元偷偷看……
abuffalo
4楼-- · 2019-07-20 11:19
正点原子 发表于 2016-4-23 20:29
只有浮空输入,没有浮空输出。。。。

确也发现同样问题,有的例程,是浮空输出
八蹄马
5楼-- · 2019-07-20 15:38
 精彩回答 2  元偷偷看……
八蹄马
6楼-- · 2019-07-20 15:54
楼主,为什么我的代码贴上去注释显示不出来,请问你的代码是怎么把中文注释也显示正确的?

一周热门 更多>