资源描述:
《Mini2440串口》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Mini2440串口C Mini2440有三个串口,USRT0,UART1,UART3。 对串口的操作有三种:串口初始化,串口接收,串口发送 1串口初始化 1)串口初始化函数 voidUart_Init(intpclk,intbaud) { inti; if(pclk==0) pclk =PCLK; rUFCON0=0x0; //UARTchannel0FIFOcontrolregister,FIFOdisable rUFCON1=0x0; //UARTc
2、hannel1FIFOcontrolregister,FIFOdisable rUFCON2=0x0; //UARTchannel2FIFOcontrolregister,FIFOdisable rUMCON0=0x0; //UARTchaneel0MODEMcontrolregister,AFCdisable rUMCON1=0x0; //UARTchaneel1MODEMcontrolregister,AFCdisable //UART0 rULCON0=0x3;
3、 //Linecontrolregister:Normal,Noparity,1stop,8bits // [10] [9] [8] [7] [6] [5] [4] [3:2] [1:0] //ClockSel, TxInt, RxInt,RxTimeOut,Rxerr,Loop-back,Sendbreak, TransmitMode,ReceiveMode //
4、 0 1 0 , 0 1 0 0 , 01 01 // PCLK Level Pulse Disable Generate Normal Normal InterruptorPolling rUCON0 =0x245; //Controlregister rUBRDIV0=((int)(pclk/1
5、6./baud+0.5)-1); //Baudratedivisiorregister0 //UART1 rULCON1=0x3; rUCON1 =0x245; rUBRDIV1=((int)(pclk/16./baud+0.5)-1); //UART2 rULCON2=0x3; rUCON2 =0x245; rUBRDIV2=((int)(pclk/16./baud+0.5)-1); for(i=0;i<100;i++); } l
6、 串口时钟的设置 pclk =PCLK;使用PCLK作为串口的时钟。 l 寄存器进行了设置 主要是对三种寄存器进行了设置 rUFCONn(n=0,1,2)——串口FIFO控制寄存器 rUMCONn(n=0,1)——串口调制控制寄存器 rULCONn(n=0,1,2)——串口线性控制寄存器 rUCONn(n=0,1,2)——串口控制寄存器 rUBRDIVn(n=0,1,2)——串口Tx,Rx收发速率的设
7、定 2)串口的选择 voidUart_Select(intch) { whichUart=ch; } 2串口发送 串口发送数据通过判断rUTRSTATn(n=0,1,2)的第2位是不是为1来判断发送缓存是否为空。 1) 串口发送字节 voidUart_SendByte(intdata) { if(whichUart==0) { if(data=='/n') { while(!(rUTRSTAT0&0x2)
8、); //Delay(1); //becausetheslowresponseofhyper_terminal WrUTXH0('/r'); } while(!(rUTRSTAT0&0x2)); //WaituntilTHRisempty. // Delay(1); WrUTXH0(data