This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430FR5969:P3DIR 通过写入 PBDIR 进行设置

Guru**** 2538930 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1019434/msp430fr5969-p3dir-set-by-write-to-pbdir

器件型号:MSP430FR5969

复位时、我为函数中的所有未使用引脚设置 DIR 引脚。 我设置 P3DIR |= BIT5 + BIT6 + BIT7 (0xE0)。 在函数的后面部分、我设置 PBDIR |= 0xFF、因为我不使用任何 PB 引脚。 但是、P3DIR 设置为0xFF。 由于这是一个 FRAM 芯片、它通过复位来保持我的 ADC 设置。 当 P3.2设置为输出时、它会导致中断发生、因为超出了 ADC12HI 阈值。 我可以通过在调用函数之前禁用 ADC 并在之后重新启用 ADC 来解决此问题、但是否有人可以解释为什么写入 PBDIR 会导致写入 P3DIR? 谢谢。

/*******************************************************************!
	\brief          Initializes Unused Pins

	\param[in]      none

	\return         none

	\note

	\warning
*******************************************************************/
void initUnusedPins(void)
{
	//Switched to port function, output direction (PxDIR.n = 1)
	//P2.3 P2.7 3.5-7 P4.6
	P2SEL0 &= ~BIT3 & ~BIT7; 	// clear select 0 bit P2.3 & P2.7
	P2SEL1 &= ~BIT3 & ~BIT7;	// clear select 1 bit P2.3 & P2.7
	P2DIR |= BIT3 + BIT7; 		// select P2.3 & P2.7 as output

	P3SEL0 &= ~BIT5 & ~BIT6 & ~BIT7; 	// clear select 0 bit P3.5, P3.6, & P3.7
	P3SEL1 &= ~BIT5 & ~BIT6 & ~BIT7;	// clear select 1 bit P3.5, P3.6, & P3.7
	P3DIR |= BIT5 + BIT6 + BIT7; 		// select P3.5, P3.6, & P3.7 as output

	P4SEL0 &= ~BIT6; 	// clear select 0 bit P4.6
	P4SEL1 &= ~BIT6;	// clear select 1 bit P4.6
	P4DIR |= BIT6; 		// select P4.6

	P5SEL0 &= P6SEL0 &= P7SEL0 &= P8SEL0 &= PASEL0 &= PBSEL0 &= PCSEL0 &= PDSEL0 &= 0x00;
	P5SEL1 &= P6SEL1 &= P7SEL1 &= P8SEL1 &= PASEL1 &= PBSEL1 &= PCSEL1 &= PDSEL1 &= 0x00;
	P5DIR |= 0xFF;
	P6DIR |= 0xFF;
	P7DIR |= 0xFF;
	P8DIR |= 0xFF;
	PADIR |= 0xFF;
	PBDIR |= 0xFF;
	PCDIR |= 0xFF;
	PDDIR |= 0xFF;
	P5OUT |= 0xFF;
	P6OUT |= 0xFF;
	P7OUT |= 0xFF;
	P8OUT |= 0xFF;
	PAOUT |= 0xFF;
	PBOUT |= 0xFF;
	PCOUT |= 0xFF;
	PDOUT |= 0xFF;


}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    PB 是查看 P3和 P4但作为16位字的另一种方法。 从头文件:

    #define P3DIR                  (PBDIR_L)      /* Port 3 Direction */
    #define P4DIR                  (PBDIR_H)      /* Port 4 Direction */
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    或从手册12.1中:"单个端口可作为字节宽端口进行访问、也可组合为字宽端口并通过字格式进行访问。 端口对 P1和 P2、P3和 P4、P5和 P6、P7和 P8等、 与 PA、PB、PC、PD 等名称相关、 "。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢!