在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > TQ2440之串口傳輸數(shù)據(jù)

            TQ2440之串口傳輸數(shù)據(jù)

            作者: 時間:2016-11-21 來源:網(wǎng)絡 收藏
            串口打印,好東西啊這個。目標就是從板子傳輸數(shù)據(jù)打印在超級終端上,也就是在電腦上能顯示板子傳輸?shù)臄?shù)據(jù)即可,這個比較容易,有參考了TQ自帶的2440lib.c文件,對初始化那些參考芯片跟那個c文件之后很快程序就出來了,有更簡便的方法,但是要自己寫出來才比較印象深刻。
            程序如下:
            #include "2440addr.h"
            #include "Option.h"
            #include "def.h"
            //一旦用到U32怎么不行
            unsigned int PCLK;
            extern void Uart_Printf(char *fmt,...);//函數(shù)申明,不然一直提示警告
            extern void Uart_Select(int ch);
            void delay(void)//Delay()在2440lib.c里邊有定義,不小心重定義了,糾結(jié)了一下
            {
            unsigned int i,j;
            for(i=0;i<1000;i++)
            for(j=0;j<1000;j++)
            ;
            }
            void My_uart_init(int mypclk,int mybuat)//我自己寫的串口初始化
            {
            unsigned int a;
            rGPHCON = 0x0faaa;//0x1111 1010 1010 1010選中RTS、CTS、TXD、RXD
            rGPHUP = 0x7ff;//全取消上拉電阻【0;10」共11個I/O口
            if(mypclk == 0)//如果為0就用mpll中PCLK的時鐘頻率,這里我用了50MHz,而且必須是50MHz
            mypclk = PCLK;//mpll的PCLK不就是50MHz么,如果設置為mypclk為0應該也是可以,沒試。
            rUFCON0 = 0x0;
            rUFCON1 = 0x0;
            rUFCON2 = 0x0;//FIFO禁止
            rUMCON0 = 0x0;
            rUMCON1 = 0x0;//禁止AFC等
            rULCON0 = 0x3;//傳輸字長8字節(jié)
            rUCON0 = 0x245;//【0,3】是保留沒得設置的,設置Rx錯誤狀態(tài)中斷,Tx電平中斷。串口1、2設置一樣
            rUBRDIV0 = ((int)(mypclk/(mybuat*16)))-1;//為發(fā)送器和接收器提供串行時鐘,計算公式見芯片手冊
            rULCON1 = 0x3;
            rUCON1 = 0x245;
            rUBRDIV1 = ((int)(mypclk/(mybuat*16)))-1;
            rULCON2 = 0x3;
            rUCON2 = 0x245;
            rUBRDIV2 = ((int)(mypclk/(mybuat*16)))-1;
            for(a=0;a<100;a++);//延時,參考2440lib.c,個人理解應該是
            }
            void Main(void)
            {
            Uart_Select(0);//選擇串口0
            My_uart_init(50000000,115200);//給時鐘50MHz,波特率115200串口才能工作
            Uart_Printf("nn");//測試2440lib.c里面關(guān)于輸入n是不是會另外補上r,回車換行
            delay();
            while(1)
            {
            Uart_Printf("I love caimanjun more than myselfn"); //打印字符串
            delay();
            Uart_Printf("yes I do! n");
            delay();
            }
            }


            關(guān)鍵詞: TQ2440串口傳輸數(shù)

            評論


            技術(shù)專區(qū)

            關(guān)閉