nxp imxrt xbar inout 的使用
如果要使用xbar inout管脚外设的,因为inout是可以双向的,所以要首先设置方向,然后把管脚复用为XBAR_INOUT功能,然后就可以在应用中使用了。
以下是qtmr通过xbar inout管脚输出pwm的例子
/*设置外部引脚的复用功能*/
IOMUXC_GPR->GPR6 |= IOMUXC_GPR_GPR6_IOMUXC_XBAR_DIR_SEL_17_MASK;
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_03_XBAR1_INOUT17, 0U);
/*设置引脚的 pad 属性 */
IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_03_XBAR1_INOUT17, 0x10B0U);
qtmr_config_t qtmrConfig;
QTMR_GetDefaultConfig(&qtmrConfig);
qtmrConfig.primarySource = QTMR_PRIMARY_SOURCE;
QTMR_Init(QTMR_BASEADDR, QTMR_PWM_CHANNEL, &qtmrConfig);
QTMR_SetupPwm(QTMR_BASEADDR, QTMR_PWM_CHANNEL, QTMR_PWM_OUTPUT_FREQUENCY, QTMR_DUTYCYCLE_PERCENT, true,
QTMR_SOURCE_CLOCK);
/* Start the counter */
QTMR_StartTimer(QTMR_BASEADDR, QTMR_PWM_CHANNEL, kQTMR_PriSrcRiseEdge);
XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputQtimer4Tmr1Output, kXBARA1_OutputIomuxXbarInout17);