历史上的今天
今天是:2025年03月12日(星期三)
2020年03月12日 | 关于MSP430 IO作为输入时内置拉电阻的问题
2020-03-12 来源:eefocus
单片机:MSP430g2553评估板
软件:IAR
问题:用msp430单片机扫描按键时是否要加上下拉电阻。
描述:最近笔者在学TI公司的msp430单片机时要测试板载的按键,但是发现IO外面没有加上拉电阻,当我代码控制P1.3为输入时,IO表现为高阻状态,将手在IO上就能改变IO的电位,我很自然的想到应该在IO上外加上拉电阻,但是反过来想,为什么TI公司设计这板子的时候没有加上上拉电阻那?难道要让我们自己加?不科学!于是我到网上搜相关问题,很多人都是另外加电阻的,难道我想多了?突然我看到一篇博客,下面是该博客的内容:
今天帮助一个人测试msp430f2002,他又提出了这样的要求,输入,msp430内部上拉,我又习惯性的说,不行啊,只能输出可以内部上下拉,他是个硬件工程师,很是怀疑,其实我也怀疑。
又仔细看了下430的datasheet。对着内部电路一看,我靠,还真是。。作为一个电信专业出身的人,居然。。没看内部结构就下了那样的结论,大意了。
上下拉是否开启是否REN寄存器决定的,而上拉还是下拉是由OUT寄存器决定的,在作为输出时,随着OUT的高低,自动选择上下拉,作为输入的时候,我们也可以人为的付OUT寄存器来得到上下拉。
看到上面这篇博客,我恍然大悟!非常感谢博主的分享!帮我解决了问题!但是感觉博主写的不够具体,为了让大家都能看明白,我再补充一下!
正如博主所说:
PxREN寄存器控制拉电阻是否启用,而PxOUT决定了拉电阻是上拉还是下拉,具体的工作原理是这样的
| PxDIR=1时输出 | PxREN=1只有拉电阻起作用 | PxOUT=1上拉 | ||||
| PxOUT=0下拉 | ||||||
| PxREN=0推挽输出无拉电阻 | PxOUT=1输出高 | |||||
| PxOUT=0输出低 | ||||||
| PxDIR=0时输入 | PxREN=1有拉电阻起作用 | PxOUT=1上拉 | ||||
| PxOUT=0下拉 | ||||||
| PxREN=0时IO呈高阻状态 | 高阻状态 | |||||
#include
void main()
{
WDTCTL=WDTPW+WDTHOLD;
P1DIR=0x0001;
P1REN=BIT3; //输入
P1OUT=BIT3; //上拉
while(1)
{
if(P1IN&BIT3)
P1OUT|=BIT0;
else
P1OUT&=~BIT0;
}
}
史海拾趣
|
射频(RF)技术简介RF(Radio Frequency)技术被广泛应用于多种领域,如:电视、广播、移动电话、雷达、自动识别系统等。专用词RFID(射频识别)即指应用射频识别信号对目标物进行识别。RFID的应用包括: ● ETC(电子收费) ● 铁路机车车辆识别与 ...… 查看全部问答> |
|
现在公司准备用c#开发一个项目 运行在wince平台上。 我现在还没搞清楚 这个环境应该怎么搭建。 有没有乐于助人的? 帮帮我这个可怜的人吧。 感谢 万分感谢。 Q:252847391 非诚勿 ...… 查看全部问答> |
|
那位高手用过dp-1581+单片机开发过东西,现在学习中... 那位高手用过dp-1581+单片机开发过东西,现在学习中...能给点代码参考学习一下,那怕最简单的都可以,只是学习用的现在手里有一个仿真板 stc89c52+dp-1581 玩了几天也没玩转,望高手指教一下,学习中...... … 查看全部问答> |
|
我用PB编译好了winCE内核后,已经把镜像下载到了目标平台上,跑起来了。现在下一步是开发应用程序,就是把evc下的应用程序也下载到目标平台上。我不想使用把应用程序编译到内核然后一起下载到目标板上的的方法,觉得那样不够灵活。请问内核下载到目 ...… 查看全部问答> |




