打印
[ZLG-MCU]

外设使能顺序的问题!

[复制链接]
2022|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hhtek|  楼主 | 2008-3-1 15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我遇到的情况:
程序如下
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
GPIODirModeSet(.....);
GPIOPadConfigSet(...); 
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);


描述:如果以前使能过SYSCTL_PERIPH_GPIOA,在配置UART0的时候,执行
SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);这句话的时候就会死循环,死循环位置在  库的源文件  ..DriverLibsrcuart.c  中函数UARTDisable()中的 
    //
    // Wait for end of TX.
    //
    while(HWREG(ulBase + UART_O_FR) & UART_FR_BUSY)
    {
    }

//-----------
问题:在外设使能的过程中有顺序要求?

谢谢!

相关帖子

沙发
zlgmcu| | 2008-3-2 10:50 | 只看该作者

我刚刚做了实验,没有发现有何异常

看看我的UART初始化部分,其中未缩进的4行代码是按照楼主的方法添加的。
但是调试的结果未发现异常。

// UART初始化
void  uartInit(void)
{
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA) ;
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE , GPIO_PIN_2);
GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , 0 << 2);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0) ;
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA) ;

    GPIOPinTypeUART(GPIO_PORTA_BASE , GPIO_PIN_0 | GPIO_PIN_1) ;

    UARTConfigSet(UART0_BASE ,
                  9600 ,                            // 波特率:9600
                  UART_CONFIG_WLEN_8  |             // 数据:8
                  UART_CONFIG_STOP_ONE  |           // 停止位:1
                  UART_CONFIG_PAR_NONE) ;           // 校验位:None
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA) ;
}

(zlgmcu_wdx)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

23

帖子

0

粉丝