环境: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; //清除错误标志
}
这是为何? |