uart为何初始化就故障?

[复制链接]
2659|4
 楼主| ningling_21 发表于 2012-4-28 16:41 | 显示全部楼层 |阅读模式
环境:CORTEX-M3 LM3S6965 KEIL UV3
初始化UART的程序,如果开始就全速运行,就会停止在图中的地址。
如果单步运行,则不会到图中的地址,程序的其它功能正常。
UART初始化代码如下:
void init_uart1(void)
{
    SYSCTL_RCGC1_R = 1<<1;   //使能UART1时钟
    UART1_CTL_R &= ~0x01;    //禁止UART1                 
    UART1_CTL_R  = 1<<8|
                   1<<9;     //使能接收,发送
    UART1_IBRD_R = 39;        //0-15 波特率整数部分
    UART1_FBRD_R = 5;         //0-5  波特率小数部分  39.5 =9600波特率
    UART1_LCRH_R = 1<<6|
                   1<<5|
                   1<<4;     //8位数据位,禁止奇偶校验,使能FIFO
    UART1_CTL_R |= 1<<0|  //使能UART1
       1<<7;  //使能回环模式
   
    //   UART0_FR_R = 0;        //UART标志寄存器
UART1_ECR_R  = 0x0a;  //清除错误标志
}

这是为何?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ayb_ice 发表于 2012-4-28 17:06 | 显示全部楼层
应该还是软件BUG
 楼主| ningling_21 发表于 2012-4-28 19:36 | 显示全部楼层
应该还是软件BUG
ayb_ice 发表于 2012-4-28 17:06


如果说软件有BUG的话,为什么单步调试可以运行呢?
Ryanhsiung 发表于 2012-4-29 08:36 | 显示全部楼层
进陷阱了,单步操作与实际不一样,单步停止后,各个外设可能还在跑,整个系统还有大部分在运行。(不同单片机可能不同)
建议:使用分段注释 查找问题语句(bug)。
 楼主| ningling_21 发表于 2012-5-3 13:33 | 显示全部楼层
问题解决!
使能外设的时钟要放在前面.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5015

主题

17844

帖子

51

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