OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4547|回复: 10

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

[复制链接]

6

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
金钱
436
注册时间
2015-12-11
在线时间
53 小时
发表于 2016-4-16 13:26:48 | 显示全部楼层 |阅读模式
1金钱
在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;  

最佳答案

查看完整内容[请看2#楼]

0X8是带上拉/下拉的输入模式。而ODR=0X0000,则说明是下拉(ODR控制下拉/上拉)
Try again and there is nothing left to say.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-4-16 13:26:49 | 显示全部楼层
0X8是带上拉/下拉的输入模式。而ODR=0X0000,则说明是下拉(ODR控制下拉/上拉)
回复

使用道具 举报

6

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
金钱
436
注册时间
2015-12-11
在线时间
53 小时
 楼主| 发表于 2016-4-17 21:33:15 | 显示全部楼层
有没有人知道为什么需要这样配置端口?很纠结啊
Try again and there is nothing left to say.
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-4-16
在线时间
2 小时
发表于 2016-4-18 16:11:22 | 显示全部楼层
我也是个小白初学者,    ODR是输出数据寄存器,用这个寄存器设置I/O口输出的值; GPIOB->ODR=0x0000;        //输出全为0, 16进制的数 0x0000 = 二进制的数 0000 0000 0000 0000 GPIOB->ODR=0xFFFF;        //输出不就是全为1吗,16进制的数 0x0000 = 二进制的数 1111 1111 1111 1111
回复

使用道具 举报

6

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
金钱
436
注册时间
2015-12-11
在线时间
53 小时
 楼主| 发表于 2016-4-21 12:28:22 | 显示全部楼层
biubiubiu 发表于 2016-4-18 16:11
我也是个小白初学者,    ODR是输出数据寄存器,用这个寄存器设置I/O口输出的值; GPIOB->ODR=0x0000;        // ...

我知道这个配置的作用,但是为什么这个端口要配置成这样?是根据TFTLCD的芯片手册还是80并口写的?我再花点时间去找下答案吧
Try again and there is nothing left to say.
回复

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2016-4-16
在线时间
2 小时
发表于 2016-4-21 20:32:41 | 显示全部楼层
墨黥天 发表于 2016-4-21 12:28
我知道这个配置的作用,但是为什么这个端口要配置成这样?是根据TFTLCD的芯片手册还是80并口写的?我再花 ...

奥。为什么设置为端口输出模式我也不知道,也想知道为什么要设置成上拉或下拉。
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2016-8-16
在线时间
2 小时
发表于 2016-8-16 17:13:56 | 显示全部楼层
问题解决了吗?,我也不懂为什么这样设置,求告知啊
回复

使用道具 举报

6

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
金钱
436
注册时间
2015-12-11
在线时间
53 小时
 楼主| 发表于 2016-8-16 19:08:10 | 显示全部楼层
ycs268106 发表于 2016-8-16 17:13
问题解决了吗?,我也不懂为什么这样设置,求告知啊

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

使用道具 举报

6

主题

104

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
436
金钱
436
注册时间
2015-12-11
在线时间
53 小时
 楼主| 发表于 2016-8-16 19:12:48 | 显示全部楼层
墨黥天 发表于 2016-8-16 19:08
我的理解是,设置为上拉输入,为了检测低电平输入,外部输入默认电平是高电平,也就是说外部输入是0就拉 ...

不知道我的理解对不对,欢迎拍砖
Try again and there is nothing left to say.
回复

使用道具 举报

1

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
290
金钱
290
注册时间
2016-8-15
在线时间
20 小时
发表于 2016-8-16 22:58:28 | 显示全部楼层
板子还没到,先浏览一下
回复

使用道具 举报

13

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2017-3-23
在线时间
52 小时
发表于 2017-12-19 21:24:13 | 显示全部楼层
楼主问题解决了吗?我也不知道为啥这样配置
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-19 14:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表