您好!
使用 Starterware 成功地将 UART2、UART3、UART4和 UART5与 BeagleBone Black 连接,请告诉我。
谢谢、此致、
Shubhakara P S
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.
您好!
使用 Starterware 成功地将 UART2、UART3、UART4和 UART5与 BeagleBone Black 连接,请告诉我。
谢谢、此致、
Shubhakara P S
嗨、大家好、
我已经解决了这个问题,欢呼!!!!!!!!!
在这里、我要为 UART2添加 Pinmux 配置
// UART2的引脚复用设置
/* RXD */
HWREG (SOC_CONTRAL_REGS +CONTRAL_CONF_SPI0_SCLK)=
(CONTRAL_CONF_MUXMODE (1)|
CONTRAL_CONF_SPI0_SCLK_CONF_SPI0_SCLK_PUTYPESEL |
CONTRAL_CONF_SPI0_SCLK_CONF_SPI0_SCLK_RXACTIVE);
/* TXD */
HWREG (SOC_CONTRAL_REGS + CONTRAL_CONF_SPI0_D0)=
(CONTRAL_CONF_MUXMODE (1)|
CONTRAL_CONF_SPI0_D0_CONF_SPI0_D0_PUTYPESEL);
}
//模块时钟配置。
空 UART2ModuleClkConfig (空)
{
HWREG (SOC_CM_PER_REGS + CM_PER_L3S_CLKSTCTRL)=
CM_PER_L3S_CLKSTCTRL_CLKTRCTRL_SW_WKUP;
while ((HWREG (SOC_CM_PER_regs + CM_PER_L3S_CLKSTCTRL)&
CM_PER_L3S_CLKSTCTRL_CLKTRCTRL)!= CM_PER_L3S_CLKSTCTRL_CLKTRCTRL_SW_WKUP);
HWREG (SOC_CM_PER_regs + CM_PER_L3_CLKSTCTRL)=
CM_PER_L3_CLKSTCTRL_CLKTRCTRL_SW_WKUP;
while ((HWREG (SOC_CM_PER_regs + CM_PER_L3_CLKSTCTRL)&
CM_PER_L3_CLKSTCTRL_CLKTRCTRL)!= CM_PER_L3_CLKSTCTRL_CLKTRCTRL_SW_WKUP);
HWREG (SOC_CM_PER_REGS + CM_PER_L3_INSTR_CLKCTRL)=
CM_PER_L3_INSTR_CLKCTRL_MODULEMODE_ENABLE;
while ((HWREG (SOC_CM_PER_Regs + CM_PER_L3_INSTR_CLKCTRL)&
CM_PER_L3_INSTR_CLKCTRL_MODULEMODE)!=
CM_PER_L3_INSTR_CLKCTRL_MODULEMODE_ENABLE);
HWREG (SOC_CM_PER_Regs + CM_PER_L3_CLKCTRL)=
CM_PER_L3_CLKCTRL_MODULEMODE_ENABLE;
while ((HWREG (SOC_CM_PER_regs + CM_PER_L3_CLKCTRL)&
CM_PER_L3_CLKCTRL_MODULEMODE)!= CM_PER_L3_CLKCTRL_MODULEMODE_ENABLE);
HWREG (SOC_CM_PER_REGS + CM_PER_OCPWP_L3_CLKSTCTRL)=
CM_PER_OCPWP_L3_CLKSTCTRL_CLKTRCTRL_SW_WKUP;
while ((HWREG (SOC_CM_PER_regs + CM_PER_OCPWP_L3_CLKSTCTRL)和
CM_PER_OCPWP_L3_CLKSTCTRL_CLKTRCTRL)!=
CM_PER_OCPWP_L3_CLKSTCTRL_CLKTRCTRL_SW_WKUP);
HWREG (SOC_CM_PER_REGS + CM_PER_L4LS_CLKSTCTRL)=
CM_PER_L4LS_CLKSTCTRL_CLKTRCTRL_SW_WKUP;
while ((HWREG (SOC_CM_PER_regs + CM_PER_L4LS_CLKSTCTRL)&
CM_PER_L4LS_CLKSTCTRL_CLKTRCTRL)!=
CM_PER_L4LS_CLKSTCTRL_CLKTRCTRL_SW_WKUP);
HWREG (SOC_CM_PER_REGS + CM_PER_L4LS_CLKCTRL)=
CM_PER_L4LS_CLKCTRL_MODULEMODE_ENABLE;
while ((HWREG (SOC_CM_PER_regs + CM_PER_L4LS_CLKCTRL)&
CM_PER_L4LS_CLKCTRL_MODULEMODE)!= CM_PER_L4LS_CLKCTRL_MODULEMODE_ENABLE);
HWREG (SOC_CM_PER_regs + CM_PER_UART2_CLKCTRL)|= CM_PER_UART2_CLKCTRL_MODULEMODE_ENABLE;
while ((HWREG (SOC_CM_PER_Regs + CM_PER_UART2_CLKCTRL)&
CM_PER_UART2_CLKCTRL_MODULEMODE)!= CM_PER_UART2_CLKCTRL_MODULEMODE_ENABLE);
while (!(HWREG (SOC_CM_PER_regs + CM_PER_L3S_CLKSTCTRL)&
CM_PER_L3S_CLKSTCTRL_CLKACTIVITY_L3S_GCLK);
while (!(HWREG (SOC_CM_PER_regs + CM_PER_L3_CLKSTCTRL)&
CM_PER_L3_CLKSTCTRL_CLKACTIVITY_L3_GCLK);
while (!(HWREG (SOC_CM_PER_Regs + CM_PER_OCPWP_L3_CLKSTCTRL)&
(CM_PER_OCPWP_L3_CLKSTCTRL_CLKACTIVITY_OCPWP_L3_GCLK |
CM_PER_OCPWP_L3_CLKSTCTRL_CLKACTIVITY_OCPWP_L4_GCLK)));
while (!(HWREG (SOC_CM_PER_regs + CM_PER_L4LS_CLKSTCTRL)&
(cm_per_L4LS_CLKSTCTRL_CLKACTIVITY_L4LS_GCLK |
CM_PER_L4LS_CLKSTCTRL_CLKACTIVITY_UART_GFCLK)));
//等待 MODULEMODE 位域反映写入值。 *
while (CM_PER_UART2_CLKCTRL_MODULEMODE_ENABLE!=
(HWREG (SOC_CM_PER_Regs + CM_PER_UART2_CLKCTRL)和
CM_PER_UART2_CLKCTRL_MODULEMODE));
/*
**等待 CM_WKUP_UART2_CLKCTRL 寄存器中的 IDLEST 域达到
**所需值。
*
while (((CM_PER_UART2_CLKCTRL_IDLEST_FUNC <<
CM_PER_UART2_CLKCTRL_IDLEST_SHIFT)!=
(HWREG (SOC_CM_PER_Regs + CM_PER_UART2_CLKCTRL)和
CM_PER_UART2_CLKCTRL_IDLEST);
}
谢谢、
Shubhakara P S
谢谢、此致、
Shubhakara P S