<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > LPC1768串口使用

LPC1768串口使用

作者: 時(shí)間:2018-08-06 來(lái)源:網(wǎng)絡(luò ) 收藏

Lpc1768內置了四個(gè)通訊模塊,都是異步通訊模塊,其中,0/2/3是普通通訊,串口1與 UART0/2/3 基本相同,只是增加了一個(gè) Modem 接口和 RS-486/EIA-486 模式,不支持 IrDA,我們今天以串口0來(lái)演示串口的使用.

本文引用地址:http://dyxdggzs.com/article/201808/385512.htm

首先,使用串口0要打開(kāi)串口0的時(shí)鐘

然后要配置相應的輸入輸出IO口為串口通訊功能

然后,要控制串口0的時(shí)鐘源,1768的大部分外設時(shí)鐘都可以選擇從cpu時(shí)鐘中進(jìn)行分頻

接著(zhù),需要設置串口的通訊位,停止位以及波特率等

通過(guò)該寄存器能夠設置波特率

通過(guò)該寄存器可以設置通訊模式

記住,初始化完成之后需要將除數鎖存變?yōu)?,使其他人不能隨意修改波特率,接著(zhù)對串口的fifo進(jìn)行控制

使能相應的中斷

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

在串口中斷處理程序中,先清除通道中斷掛起,然后清除串口相應掛起,取出數據,就可以了,詳細的代碼示例如下

void DebugSerialInit(u32 baud)

{

LPC_SC->PCONP = (13); //打開(kāi)UART0功率、時(shí)鐘控制位

LPC_PINCON->PINSEL0 = ~(0x034);

LPC_PINCON->PINSEL0 |= (0x014); //p02 tx0

LPC_PINCON->PINSEL0 = ~(0x036);

LPC_PINCON->PINSEL0 |= (0x016); //p03 rx0

LPC_UART0->LCR = 0x83; //設置串口數據格式,8位字符長(cháng)度,1個(gè)停止位,無(wú)校驗,

//使能訪(fǎng)問(wèn)除數鎖存器 ,設定波特率

LPC_SC->PCLKSEL0 = ~(0x036); //uart0 pclk = sysclock

LPC_SC->PCLKSEL0 |= (0x016); //uart0 pclk = sysclock

LPC_UART0->DLM = ((SystemCoreClock/16)/baud) / 256; //除數高八位 , 沒(méi)有小數情況

LPC_UART0->DLL = ((SystemCoreClock/16)/baud) % 256; //除數第八位

LPC_UART0->LCR = 0x03; //禁止訪(fǎng)問(wèn)除數鎖存器,鎖定波特率

LPC_UART0->FCR = 0x00; //禁止FIFO

NVIC_ClearPendingIRQ(UART0_IRQn);

NVIC_SetPriority(UART0_IRQn,NVIC_EncodePriority(SYS_NVIC_GROUP,UART0_PreemptPriority,UART0_SubPriority));

NVIC_EnableIRQ(UART0_IRQn); /* enable irq in nvic */

LPC_UART0->IER = 0x01; //使能接收中斷

}

串口中斷處理程序如下

void UART0_IRQHandler(void)

{

u8 Res;

NVIC_ClearPendingIRQ(UART0_IRQn);

Res = LPC_UART0->RBR; //讀取接收數據,讀取中斷自動(dòng)清零

DebugSerialSendChar(Res);

}

注意一點(diǎn),在不使用小數寄存器的情況下,115200的的波特率,串口的外設時(shí)鐘最好在100M,否則串口的波特率的誤差比較大,容易造成通訊失敗。

『本文轉載自網(wǎng)絡(luò ),版權歸原作者所有,如有侵權請聯(lián)系刪除』



關(guān)鍵詞: 單片機 LPC1768 串口

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>