关于液晶触摸屏端口配置的问题

2019-07-20 10:24发布

在ILI9341触摸屏的u16 LCD_RD_DATA(void)读数据函数里面有如下几段对IO口配置的代码,为什么要配置成上拉输入呢? 而且输出全为0又是为什么?还有0x08在CRL寄存器里面不是设置成上拉/下拉输入吗,原子哥给出的注释是上拉输入,这是怎么确定的?在下小白初学stm32还请各位大哥多多指教!
        GPIOB->CRL=0X88888888; //PB0-7  上拉输入    为什么?
        GPIOB->CRH=0X88888888; //PB8-15    上拉输入    为什么?
        GPIOB->ODR=0X0000; //输出全为0   为什么?
        LCD_RS_SET;
        LCD_CS_CLR;
        LCD_RD_CLR;
        if(lcddev.id==0X8989)delay_us(2);//                          
        t=DATAIN;  
        LCD_RD_SET;
        LCD_CS_SET;

        GPIOB->CRL=0X33333333; //PB0-7  上拉输出     为什么?
        GPIOB->CRH=0X33333333; //PB8-15  上拉输出    为什么?
        GPIOB->ODR=0XFFFF;    //全部输出高     为什么?
        return t;  

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
墨黥天
2019-07-21 03:08
ycs268106 发表于 2016-8-16 17:13
问题解决了吗?,我也不懂为什么这样设置,求告知啊

我的理解是,设置为上拉输入,为了检测低电平输入,外部输入默认电平是高电平,也就是说外部输入是0就拉低,是1或者没有输入就不变。(这个得根据外设电器特性来使用吧,有的外设不能直接拉高STM32IO口的电平,只能拉低)然后为了防止自己的输出端口对对输入造成影响,就把输出设置为0.  读取完毕之后,把GPIOB拉高输出,我觉得也应该是避免意想不到的干扰。反正每次执行读数据的时候都会重复上面的操作。

一周热门 更多>