songzm 发表于 2012-7-16 10:57:02

cortexM0串口初始化时钟使能问题求解!

void UartInit()
{
        P3_MFP&=~(P31_TXD0|P30_RXD0);    //P3.0使能为串口0接收
        P3_MFP|=(P31_TXD0|P30_RXD0);   //P3.使能为串口发送
        UART0_Clock_EN;                //串口0时钟使能
        UARTClkSource_ex12MHZ;        //串口时钟选择为外部晶振
        CLKDIV&=~(15<<8);    //串口时钟分频为0
        IPRSTC2|=UART0_RST;    //复位串口0
        IPRSTC2&=UART0_RST;    //复位结束
        UA0_FCR|=TX_RST;      //发送FIFO复位
        UA0_FCR|=RX_RST;       //接收fifo复位
        UA0_LCR&=~PBE;          //校验位功能取消
        UA0_LCR&=~WLS;               
        UA0_LCR|=WL_8BIT;                //8位数据位
        UA0_LCR&=NSB_ONE;                //1位停止位
        UA0_BAUD|=DIV_X_EN|DIV_X_EN;        //设置波特率分频
        UA0_BAUD|=((unFosc/unBaund)-2);//波特率设置UART_CLK/(A+2)=115200

串口0时钟使能和时钟选择为外部晶振的具体函数是什么啊,有经验的,麻烦分享一下,谢谢~!

songzm 发表于 2012-7-16 11:58:47

经过几番周折,终于自己找到了!
APBCLK |= UART0_CLKEN;                           //使能UART时钟
CLKSEL1 = CLKSEL1 & (~UART_CLK) | UART_12M;      //选择外部12M作为UART时钟源
页: [1]
查看完整版本: cortexM0串口初始化时钟使能问题求解!