本帖最后由 zhaolei2612 于 2016-11-25 16:56 编辑
下面是我的UART1初始化程序
void Uart1_Init(void)
{
UART1_CR2=0;//禁止UART发送和接收
UART1_CR1=0X00;//8BIT
UART1_CR3=0X00;//1 STOP BIT
UART1_BRR2=0X03;
UART1_BRR1=0X68;//9600 baud rate,时钟用16Mhz内部HSI,fMASTER=fHSI=16Mhz
UART1_CR2=0X2c;//enable REN and RIEN,TEN
}
下面是系统时钟初始化程序
void Clk_Init(void)
{
CLK_CKDIVR=0X03;//fMASTER=fHSI=16MHZ,fCPU=fMASTER/8=2MHZ
// CLK_PCKENR1=0X04;//关闭未使用的外设时钟,打开UART1时钟
}
问题是,如果打开CLK_PCKENR1=0X04这一句,串口就不能正常工作。屏蔽这一句,就没有问题了。这是什么原因呢?求解。
程序中只使用了UART1,没有用其他外设。
初始化程序如下:
delay_ms(200);
Clk_Init();
Gpio_Init();
Uart1_Init();
_asm("rim");
|