在将GPIO复用成UART时,需要设置不同的IO复用方式,并将它们配置为UART的接收和发送引脚。这是因为GPIO可以被配置为多种不同的功能,例如GPIO、ADC、I2C、SPI等等,每种功能都有不同的引脚复用方式。因此,在将GPIO用作UART时,需要指定引脚的复用方式。
在NUC230中,使用SYS->GPB_MFP寄存器来配置GPIO引脚的复用方式。该寄存器的每个位都对应一个GPIO引脚,设置为1表示将该引脚配置为相应的功能。因此,在将GPIO复用为UART时,需要将PB0和PB1引脚配置为UART0的接收和发送引脚,而不是其他功能,例如ADC或I2C。
因此,将GPB_MFP设置为SYS_GPB_MFP_PB0_UART0_RXD | SYS_GPB_MFP_PB1_UART0_TXD并不足够,因为其他GPB引脚的状态可能被清除了。正确的操作是先将GPB_MFP的相应位清零,然后再设置为UART0的引脚,如下所示:
SYS->GPB_MFP &= ~(SYS_GPB_MFP_PB0_Msk | SYS_GPB_MFP_PB1_Msk); //清零PB0和PB1引脚的状态
SYS->GPB_MFP |= SYS_GPB_MFP_PB0_UART0_RXD | SYS_GPB_MFP_PB1_UART0_TXD; //将PB0和PB1引脚配置为UART0接收和发送引脚
在将GPIO复用成UART时,需要设置不同的IO复用方式,并将它们配置为UART的接收和发送引脚。这是因为GPIO可以被配置为多种不同的功能,例如GPIO、ADC、I2C、SPI等等,每种功能都有不同的引脚复用方式。因此,在将GPIO用作UART时,需要指定引脚的复用方式。
在NUC230中,使用SYS->GPB_MFP寄存器来配置GPIO引脚的复用方式。该寄存器的每个位都对应一个GPIO引脚,设置为1表示将该引脚配置为相应的功能。因此,在将GPIO复用为UART时,需要将PB0和PB1引脚配置为UART0的接收和发送引脚,而不是其他功能,例如ADC或I2C。
因此,将GPB_MFP设置为SYS_GPB_MFP_PB0_UART0_RXD | SYS_GPB_MFP_PB1_UART0_TXD并不足够,因为其他GPB引脚的状态可能被清除了。正确的操作是先将GPB_MFP的相应位清零,然后再设置为UART0的引脚,如下所示:
SYS->GPB_MFP &= ~(SYS_GPB_MFP_PB0_Msk | SYS_GPB_MFP_PB1_Msk); //清零PB0和PB1引脚的状态
SYS->GPB_MFP |= SYS_GPB_MFP_PB0_UART0_RXD | SYS_GPB_MFP_PB1_UART0_TXD; //将PB0和PB1引脚配置为UART0接收和发送引脚
举报