日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ARM的UART实验

發布時間:2024/7/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM的UART实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗題目:設計一個串口初始化程?Uart_Init_Ext(int pclk,int baud,int parity,int stop, int len)要求在Uart_driver.c 和 Uart_driver.h中實現驅動,然后在TARGET.c的Target—_Init(void)中調用

PC端用超級終端驗證結果。串口寄存器參考實驗指導手冊

baud 為波特率

parity 為奇偶校驗

????????? 0 = 無奇偶

????????? 4= 奇校驗

5 = 偶校驗

6 = 奇偶位始終為1

7 = 奇偶位始終為0

stop 為停止位

0 = 1個停止位

1 = 2個停止位

?

len 為數據位長度

0 = 長度為5

1 = 長度為6

2 = 長度為7

3 = 長度為8

Uart_Init_Ext編碼如下:

void Uart_Init_Ext(int pclk,int baud,int parity,int stop, int len)

{

????int i;

????int p,s,l;

????if(pclk == 0)

????pclk ???= PCLK;

????if(parity==0) p=0x0;

????else if(parity==4) p=0x20;

????else if(parity==5) p=0x28;

????else if(parity==6) p=0x30;

????else if(parity==7) p=0x38;

????if(stop==0) s=0x0;

????else if(stop==1) s=0x4;

????if(len==0) l=0x0;

????else if(len==1) l=0x1;

????else if(len==2) l=0x2;

????else if(len==3) l=0x3;

????

????//rULCON0 = parity*8+stop*4+len;

????rULCON0 =p+s+l;

rUCON0 ?= 0x245; ???????????????????????

for(i=0;i<100;i++);

}

?

?

Target.c中的Uart_Init_Ext配置如下:

void Target_Init(void)

{

MMU_Init();

ChangeClockDivider(1,1); ?????????// 1:2:4 ???

ChangeMPllValue(0xa1,0x3,0x1); ???// FCLK=202.8MHz ?

????

????Port_Init();

????Isr_Init();

Uart_Init(0,4800);

Uart_Init_Ext(0,115200,0,1,1);

//此處設置的是波特率為115200,無奇偶校驗,兩個停止位,數據長度為6

?

?

????Uart_Select(0); ????

}

對應上面的設置,超級終端進行了組設置:

  • 超級終端配置配置如下: 波特率為115200,無奇偶校驗,兩個停止位
  • Uart_Init_Ext(0,115200,0,1,1);

  • 超級終端配置配置如下: 波特率為115200,奇校驗,兩個停止位
  • ?Uart_Init_Ext(0,115200,4,1,1);

    實現指定參數UART通信效果截圖如下

    問題以及解決:

    ? ? ? ?在本次實驗中,我設計一個串口初始化程序 Uart_Init_Ext(int pclk,int baud,int parity,int stop, int len)放在Uart_driver.c 文件里面,并在 Uart_driver.h中設置了函數原形,然后在TARGET.c的Target—_Init(void)中實現了調用,但發現,運行程序的時候老是在AXD中報錯,后來發現超級終端的設置要和本實驗中Uart_Init_Ext函數中設置的參數要保持一致才能通信

    總結

    以上是生活随笔為你收集整理的ARM的UART实验的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。