[ZLG-MCU] 外设使能顺序的问题!

[复制链接]
2571|1
 楼主| hhtek 发表于 2008-3-1 15:59 | 显示全部楼层 |阅读模式
我遇到的情况:<br />程序如下<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);<br />GPIODirModeSet(.....);<br />GPIOPadConfigSet(...);&nbsp;<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);<br /><br /><br />描述:如果以前使能过SYSCTL_PERIPH_GPIOA,在配置UART0的时候,执行<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);这句话的时候就会死循环,死循环位置在&nbsp;&nbsp;库的源文件&nbsp;&nbsp;..DriverLibsrcuart.c&nbsp;&nbsp;中函数UARTDisable()中的&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Wait&nbsp;for&nbsp;end&nbsp;of&nbsp;TX.<br />&nbsp;&nbsp;&nbsp;&nbsp;//<br />&nbsp;&nbsp;&nbsp;&nbsp;while(HWREG(ulBase&nbsp;+&nbsp;UART_O_FR)&nbsp;&&nbsp;UART_FR_BUSY)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />//-----------<br />问题:在外设使能的过程中有顺序要求?<br /><br />谢谢!
zlgmcu 发表于 2008-3-2 10:50 | 显示全部楼层

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

看看我的UART初始化部分,其中未缩进的4行代码是按照楼主的方法添加的。<br />但是调试的结果未发现异常。<br /><br />//&nbsp;UART初始化<br />void&nbsp;&nbsp;uartInit(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA)&nbsp;;<br />GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE&nbsp;,&nbsp;GPIO_PIN_2);<br />GPIOPinWrite(GPIO_PORTA_BASE&nbsp;,&nbsp;GPIO_PIN_2&nbsp;,&nbsp;0&nbsp;&lt&lt&nbsp;2);<br />&nbsp;&nbsp;&nbsp;&nbsp;SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0)&nbsp;;<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA)&nbsp;;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;GPIOPinTypeUART(GPIO_PORTA_BASE&nbsp;,&nbsp;GPIO_PIN_0&nbsp;|&nbsp;GPIO_PIN_1)&nbsp;;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;UARTConfigSet(UART0_BASE&nbsp;,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;9600&nbsp;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;波特率:9600<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART_CONFIG_WLEN_8&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;数据:8<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART_CONFIG_STOP_ONE&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;停止位:1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART_CONFIG_PAR_NONE)&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;校验位:None<br />SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA)&nbsp;;<br />}<br /><br />(zlgmcu_wdx)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

23

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部