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)

{

LPC_SC->PCONP |= (1<<3);                //打开UART0功率、时钟控制位

LPC_PINCON->PINSEL0 &= ~(0x03<<4);

LPC_PINCON->PINSEL0 |= (0x01<<4);       //p02 tx0

LPC_PINCON->PINSEL0 &= ~(0x03<<6);

LPC_PINCON->PINSEL0 |= (0x01<<6);       //p03 rx0

LPC_UART0->LCR = 0x83;                  //设置串口数据格式,8位字符长度,1个停止位,无校验,

//使能访问除数锁存器 ,设定波特率

LPC_SC->PCLKSEL0  &= ~(0x03<<6);        //uart0 pclk =
sysclock

LPC_SC->PCLKSEL0  |= (0x01<<6);         //uart0 pclk =
sysclock

LPC_UART0->DLM = ((SystemCoreClock/16)/baud) / 256;     //除数高八位  , 没有小数情况

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

LPC_UART0->LCR = 0x03;                  //禁止访问除数锁存器,锁定波特率

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;       //读取接收数据,读取中断自动清零

DebugSerialSendChar(Res);

}

注意一点,在不使用小数寄存器的情况下,115200的的波特率,串口的外设时钟最好在100M,否则串口的波特率的误差比较大,容易造成通讯失败

LPC1768串口使用的更多相关文章

  1. .NET 串口通信

    这段时间做了一个和硬件设备通信的小项目,涉及到扫描头.输送线.称重机.贴标机等硬件.和各设备之间通信使用的是串口或网络(Socket)的方式.扫描头和贴标机使用的网络通信,输送线和称重机使用的是串口通 ...

  2. [连载]《C#通讯(串口和网络)框架的设计与实现》- 0.前言

                                  目       录 前言 前言 刚参加工作,使用过VB.VC开发软件,随着C#的崛起,听说是C++++,公司决定以后开发软件使用C#,凭借在 ...

  3. 《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。附:将来支持Windows 10 IOT

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  4. [连载]《C#通讯(串口和网络)框架的设计与实现》- 12.二次开发及应用

    目       录 第十二章     二次开发及应用... 2 12.1        项目配制... 3 12.2        引用相关组件... 4 12.3        构建主程序... 5 ...

  5. [连载]《C#通讯(串口和网络)框架的设计与实现》- 8.总体控制器的设计

    目       录 第八章           总体控制器的设计... 2 8.1           总控制器的职能... 2 8.2           组装和释放部件... 3 8.3      ...

  6. [连载]《C#通讯(串口和网络)框架的设计与实现》- 6.通讯控制器的设计

    目       录 第六章           通讯控制器的设计... 2 6.1           控制器接口... 2 6.2           串口控制器... 3 6.3          ...

  7. Linux下的串口编程及非阻塞模式

    本篇介绍了如何在linux系统下向串口发送数据.包括read的阻塞和非阻塞.以及select方法. 打开串口 在Linux系统下,打开串口是通过使用标准的文件打开函数操作的. #include < ...

  8. 使用Minicom基于串口调试HiKey

    虽然通过adb shell调试方便,但是有些时候不得不借助于串口进行调试,比如测试suspend to ram之类的功能时,adb服务被关闭. 同时在minicom中也可以进入shell,进行操作. ...

  9. UP Board 串口使用心得

    前言 原创文章,转载引用务必注明链接. 本文使用Markdown写成,为获得更好的阅读体验和正常的图片.链接,请访问我的博客: http://www.cnblogs.com/sjqlwy/p/up_s ...

随机推荐

  1. Gson解析数据

    package com.bwie.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputS ...

  2. Image File Execution Options(转)

    今天公司的一台计算机无法正常工作送来维修,经简单判断是感染了很多病毒,即使在安全模式下也无法清除:于是将硬盘摘下挂到另外一台机器上,用卡巴斯基对病毒进行了查杀,再次启动计算机后发现很多系统维护程序以及 ...

  3. 一个appium 博客

    http://www.cnblogs.com/tobecrazy/category/699177.html appium Java控制Appium server start/stop 摘要: 相信很多 ...

  4. hdu_2546_饭卡(01背包)

    题目连接:hdu_2546_饭卡 题意:中文,不解释 题解:先拿5元来买最贵的,最后就是一个01背包,这里也算用到贪心的思想 #include<bits/stdc++.h> #define ...

  5. ActiveXObject函数详解(转)

    什么是 ActiveX 控件? ActiveX 控件广泛用于 Internet.它们可以通过提供视频.动画内容等来增加浏览的乐趣.不过,这些程序可能出问题或者向您提供不需要的内容.在某些情况下,这些程 ...

  6. label ichartjs

    的 var labels = [""+(time(-59).getMonth()+1)+"/"+time(-59).getDate()+"" ...

  7. SQL Server2008数据库中删除用户,提示数据库主体在该数据库中拥有 架构,无法删除

    一个数据库,运行在SQL Server 2008下,数据库用户无法删除,在删除时提示“数据库主体在该数据库中拥有架构,无法删除”.原因很简单,就是由于此用户在数据库中拥有某些架构的所有权,将相关架构的 ...

  8. 1381: Munching(BFS)

    Description Bessie loves her grass and loves to hurry to the barn for her evening milking session. S ...

  9. iOS触摸事件深入

    转载自:http://www.cnblogs.com/wengzilin/p/4720550.html 概述 本文主要解析从我们的手指触摸苹果设备到最终响应事件的整个处理机制.本质上讲,整个过程可以分 ...

  10. li里元素都浮动 li 在IE6 7 下方会产生4px间隙问题

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...