大家好、
我对 MSP430FR2311IRGY 的 P1.0有非常奇怪的问题
我想使用端口 P1.0来读取电路板的硬件版本。 它可以通过0欧姆电阻器接地或悬空。
现在它是浮动的、我希望当我打开上拉电阻时、读数为1。
但加电后、有时我从 P1.0 1读取、有时从0读取。 它是随机的。 您可以看到上拉电阻器打开
我还用于读取硬件版本的其他端口 P1.4和 P1.5可以完全正常工作。
我强调、仅在上电后才使用此功能读取电路板硬件版本。 之后我不使用。
始终正常工作
我使用 IAR 编译器、最大代码大小优化。
控制器从内部时钟计时8MHz。 无晶体。
读取硬件版本端口1的函数之前进行此初始化
P1REN = 0x00;
P1SEL0=0xCE;
P1SEL1=0x00;
P1DIR=0x00;
当我想读取 HW 版本时、我也在端口1.0上切换上拉电阻器、读取它并关闭上拉电阻器
空 ReadHWVersion (空)
{
volatile int i;
volatile unsigned char uHWVersion;
P1OUT = 0x031; //上拉电阻器
P1REN = 0x31; //上拉电阻使能
for (i=0;i<200;i++){
__no_operation();
}
uHWVersion = P1IN;
for (i=0;i<200;i++){
__no_operation();
}
P1OUT = 0x0; //上拉电阻器禁用
P1REN = 0x0;
}
谢谢、
Shlomi