打印

uart为何初始化就故障?

[复制链接]
2112|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
环境: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;  //清除错误标志
}

这是为何?

20120428162300429.jpg (351.96 KB )

20120428162300429.jpg

相关帖子

沙发
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)。

使用特权

评论回复
5
ningling_21|  楼主 | 2012-5-3 13:33 | 只看该作者
问题解决!
使能外设的时钟要放在前面.

使用特权

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

本版积分规则

5013

主题

17743

帖子

51

粉丝