LPC1768串列埠使用

2022-07-05 15:36:09 字數 1209 閱讀 7150

lpc1768內建了四個串列埠通訊模組,都是非同步通訊模組,其中,串列埠0/2/3是普通串列埠通訊,串列埠1與 uart0/2/3 基本相同,只是增加了乙個 modem 介面和 rs-486/eia-486 模

式,不支援

irda,我們今天以串列埠0來演示串列埠的使用.

首先,使用串列埠0要開啟串列埠0的時鐘

然後要配置相應的輸入輸出io口為串列埠通訊功能

然後,要控制串列埠0的時鐘源,1768的大部分外設時鐘都可以選擇從cpu時鐘中進行分頻

接著,需要設定串列埠的通訊位,停止位以及波特率等

通過該暫存器能夠設定波特率

通過該暫存器可以設定通訊模式

記住,初始化完成之後需要將除數鎖存變為0,使其他人不能隨意修改波特率,接著對串列埠的fifo進行控制

使能相應的中斷

然後在系統中使能相應中斷通道,串列埠就可以用了.

在串列埠中斷處理程式中,先清除通道中斷掛起,然後清除串列埠相應掛起,取出資料,就可以了,詳細的**示例如下

void debugserialinit(u32 baud)

串列埠中斷處理程式如下

void uart0_irqhandler(void)

注意一點,在不使用小數暫存器的情況下,115200的的波特率,串列埠的外設時鐘最好在100m,否則串列埠的波特率的誤差比較大,容易造成通訊失敗

lpc1768的網路通訊

這幾天找了一些源 easyweb,lpc1768 ucos ii,這兩個是可以編譯通過的。是在systick handler中斷中實現查詢通訊的。lpc1768 ucos lwip是iar的編譯環境的程式,沒有環境,沒能編譯成功。沒有硬體不好測試。16939 tcpudp.exe是助手,上位機 不知...

LPC1768實現精準延時 Systick的使用

今天在寫用1768讀取溫度感測器ds18b20的程式,它是單匯流排的感測器,因此讀寫都需要按照手冊上的時序。這是問題就來了,如何在1768中寫乙個盡可能精確us級延時函式?以前用51微控制器寫延時函式是用巢狀的for迴圈就能完成的,但是在arm中我們是不能那麼用的,因為它是 流水線構架,不像51一樣...

lpc1768的時鐘樹梳理和小結

可以看到,外部晶振我使用的是8mhz,這個在配置檔案的時候需要設定。不然keil計算就會出現錯誤。看到cclk是100mhz,因為這個晶元最快是100mhz的主頻,usb不能超過48,一般設定為48,可以低於48,但是也有限制,幾個pll都是有最大最小值的限制的,這個在參考手冊中有說明的,因此放大縮...