




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗5.9 GPIO 特性 GPIO是通用型之输入输出是通用型之输入输出(General Purpose I/O)的简称的简称,功能类似功能类似8051的的P0P3,其接脚可以供使用者其接脚可以供使用者由程序控制自由使用由程序控制自由使用 。 LPC2000系列作为
2、“微控制器”,其GPIO特性就显得很重要。它具有如下的特性:可以独立控制每个GPIO口的方向(输入/输出模式);可以独立设置每个GPIO的输出状态(高/低电平);所有GPIO口在复位后默认为输入状态。5.9 GPIO 应用R310KRSTC16104LED1POWER+3.3VR310K+3.3VQB1QC2QD3QE4QF5QG6QH7GND8SQH9SCLR10SCK11RCK12OE13SI14QA15VCC16U1174HC595+3.3VLPC2000检测数字输入,如键盘或开关信号驱动LED或其它指示器控制片外器件5.9 GPIO 引脚描述 LPC2114/2124微控制器具有两个端
3、口P0和P1,可以作为GPIO使用的引脚数为46个。 LPC2210/2212/2214微控制器还包含另外两个端口P2和P3,这个两个端口与外部存储器总线复用,当它们全部作为GPIO使用时,GPIO引脚数多达112个。5.9 GPIO 引脚描述GPIO与控制寄存器的关系PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10引脚PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10通用名称描述访问类型复位值IOPINGPIO引脚值寄存器,不管方向模式如何,引脚的当前状态都可以从
4、该寄存器中读出读/写NAIOSETGPIO输出置位寄存器。该寄存器控制引脚输出高电平读/置位0 x0000 0000IOCLRGPIO输出清零寄存器。该寄存器控制引脚输出低电平只清零0 x0000 0000IODIRGPIO方向控制寄存器。该寄存器单独控制每个IO口的方向读/写0 x0000 0000 GPIO相关寄存器描述PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10 GPIO相关寄存器描述IOxPINIOxPIN描述复位值31 : 0GPIO引脚值。IOxPIN0对应于Px.0 IOxPIN31对应于Px.31引脚未定义 该寄存器反映了当前引脚的状态。IOxP
5、IN中的x对应于某一个端口,如P1口对应于IO1PIN。所以芯片存在多少个端口,就有多少个IOxPIN分别与之对应。 写该寄存器会将值保存到输出寄存器,具体使用稍后介绍。注意:无论引脚被设置为输入还是输出模式,都不影响引脚状态的读出。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10 GPIO相关寄存器描述IOxDIRIOxDIR描述复位值31 : 0方向控制位。IOxDIR0对应于Px.0 IOxDIR31对应于Px.31引脚未定义 当引脚设置为GPIO输出模式时,可使用该寄存器控制引脚的方向。向某位写入1使对应引脚作为输出功能,写入0时作为输入功能。 作为输入功能
6、时,引脚处于高阻态。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10 GPIO相关寄存器描述IOxSETIOxSET描述复位值31 : 0输出置位。IOxSET0对应于Px.0 IOxPIN31对应于Px.31引脚未定义 当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出高电平。向某位写入1使对应引脚输出高电平。写入0无效。 从该寄存器读回的数据为GPIO输出寄存器的值。该值不反映外部环境对引脚的影响。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10 GPIO相关寄存器描述IOxCLRIOxCLR描述复位值31 : 0输出清零。IO
7、xCLR0对应于Px.0 IOxCLR31对应于Px.31引脚未定义 当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出低电平。向某位写入1使对应引脚输出低电平。写入0无效。注意:读取该寄存器无效,不能读回输出寄存器的值。5.9 GPIO 使用GPIO注意要点引脚设置为输出方式时,输出状态由IOxSET和IOxCLR中最后操作的寄存器决定;大部分GPIO输出为推挽方式(个别引脚为开漏输出),正常拉出/灌入电流均为4mA(短时间极限值40mA);复位后默认所有GPIO为输入模式。 . PINSEL0 &= 0 xFFFFFFFC; IO0DIR |= 0 x00000001; IO0SET
8、 = 0 x00000001; .C代码:PINSEL0IO0DIRIO0CLRIO0PINIO0SETinout10 GPIO应用示例设置P0.0输出高电平P0.0(1) 设置引脚连接模块,P0.0为GPIO(2) 设置P0.0口方向,设置为输出(3) 设置P0.0口状态,输出高电平1 . uint32 PinStat; PINSEL0 &= 0 xFFFFFFFC; IO0DIR &= 0 xFFFFFFFE; PinStat = IO0PIN; .C代码:PINSEL0IO0DIRIO0CLRIO0PINIO0SETinout10 GPIO应用示例读取P0.0引脚状态P0.0(1) 设置
9、引脚连接模块,P0.0为GPIO(2) 设置P0.0口方向,设置为输入(3) 从IO0PIN读取引脚状态IO0PIN#define DataBus 0 xFF PINSEL0 &= 0 xFFFF0000; IO0DIR |= DataBus; IO0CLR = DataBus; IO0SET = Data; .使用IOxSET和IOxCLR实现: GPIO应用示例输出多位数据至IO口(1) 设置引脚连接模块,P0.07为GPIO(2) 设置P0.0口方向,设置为输出(3) 清零8位IO口的输出状态 在需要将多位数据同时输出到某几个IO口线时,通常使用IOxSET和IOxCLR来实现,在某些情
10、况下也可以使用IOxPIN寄存器实现。后者可以在多个IO口上直接输出0和1电平。 本例将8位无符号整数变量Data的值输出到P0.0P0.7。(4) Data变量中为1的位将输出高电平0 x?0 x00Data数据输出线:#define DataBus 0 xFF PINSEL0 &= 0 xFFFF0000; IO0DIR |= DataBus; IO0PIN = (IO0SET & 0 xFFFFFF00) | Data; . GPIO应用示例输出多位数据至IO口(1) 设置引脚连接模块, P0.0P0.7为GPIO(2) 设置P0.0P0.7口方向,设置为输出(3) 写IO0PIN,输出
11、数据 在需要将多位数据同时输出到某几个IO口线时,通常使用IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存器实现。后者可以在多个IO口上直接输出0和1电平。 本例将8位无符号整数变量Data的值输出到P0.0P0.7。使用IOxPIN实现:0 x?Data数据输出线:0 x?0 x00Data与前者对比:第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽
12、调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗5.10 UART0 特性 LPC2000系列微控制器具有两个功能强大的UART,其中UART0具有如下的特性:16字节接收FIFO和16字节发送FIFO;接收FIFO触发点可设置为1、4、8或14字节;内置波特率发生器。(Universal Asynchronous Receiver/Transmitter)通用异步收发传输器通用异步收发传输器 使用UART0通信需要两个引脚,分别为:引脚名称类型描述RxD0输入串行输入,接收数据TxD0输出串行输出,发送数据 使用UART0通信LPC2000的I/O电压为3.3V(可承受5V
13、),连接时须注意电平的匹配。与PC机相连时,由于PC机串口是RS232电平,所以连接时需要使用RS232转换器。LPC2000其它通信设备LPC2000PC机串口232电平转换TxD0RxD0TxD0RxD0TxD0RxD0TxD0RxD0U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL1.在使用UART之前需要设置的寄存器 UART0内部结构示意图U0LCRU0IERU0FCRU0DLM U0DLLFIFO控制中断使能UART0格式设置波特率设置U0THRU0TSRTxD0U0RBRU0
14、RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL2.发送数据的通道 UART0内部结构示意图U0THRU0TSRVPB接口CPU内核通过VPB接口对UART0的寄存器进行读写访问发送缓存发送移位寄存器U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL3.接收数据的通道 UART0内部结构示意图U0RBRU0RSRVPB接口接收缓存接收移位寄存器U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIR
15、U0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL4.通信过程中可能影响的标志位 UART0内部结构示意图U0LSRU0IIR中断标志UART0当前状态 UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLLU0RBRU0RBR描述复位值7 : 0接收缓存寄存器,它包含了接收FIFO中最早接收到的字节未定义 U0RSR移位寄存器从RxD0引脚接收的有效数据将被送到接收FIFO中。通过读取U0RBR寄存器可以将接收FIFO中最早接收到的字节读出,当FIFO
16、中不再包含有效数据时,该寄存器反映接收到的最后一个有效字节数据。接收的数据不足8位时,高位用0填充。注意: U0RBR只读。访问该寄存器时,U0LCR的除数锁存访问位(DLAB)必须为0。接收缓存寄存器U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLLU0THR描述复位值7 : 0发送器保持寄存器,写入该寄存器的值
17、保存到发送FIFO中,当该字节到达FIFO底部时,它将被送入发送移位寄存器(U0TSR)进行发送。未定义 写入该寄存器的值将是发送FIFO中的最高字节。访问该寄存器时,U0LCR的除数锁存访问位(DLAB)必须为0。注意: U0THR只写。它的地址与U0RBR相同,通过读/写操作予以区分。U0THR发送器保持寄存器U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLLU0THRU0THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL UART0相关寄存器
18、描述名称描述复位值U0DLL7:0除数锁存寄存器低字节两个寄存器一起构成一个16位的除数,决定UART0的波特率。未定义U0DLM7:0除数锁存寄存器高字节 这两个寄存器决定波特率时钟的频率,而波特率时钟必须是波特率的16倍。波特率计算公式如下:BaudRate = FPCLK / (U0DLM,U0DLL16)除数锁存寄存器U0DLM U0DLL注意:由于U0DLL、U0DLM寄存器与其它寄存器的地址重叠,所以在访问它们时,U0LCR的除数锁存访问位(DLAB)必须为1。U0THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL UART0相关寄存器描
19、述U0IER描述复位值0RBR中断使能。1:使能RDA中断;0:禁止RDA中断。01THRE中断使能。1:使能THRE中断;0:禁止THRE中断。02Rx线状态中断使能。1:使能Rx线状态中断;0:禁止Rx线状态中断;该中断状态可从U0LSR4:1读出。07 : 3保留,用户软件不要向这些位写入1。未定义中断使能寄存器U0IER U0IER可以控制UART0的4个中断源。其中RBR中断使能包括两个中断,一个是接收数据可用(RDA)中断,一个是接收超时中断(CTI)。稍后将对各中断源作详细介绍。U0THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL U
20、ART0相关寄存器描述中断使能寄存器中断源和中断使能的关系U0IIRRLS中断(U0IIR3:1=011)RDA中断(U0IIR3:1=010)CTI中断(U0IIR3:1=110)THRE中断(U0IIR3:1=001)VIC中断控制器ARM7TDMI内核U0IERbit2bit1bit0优先级最高第二第二第三U0THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL UART0相关寄存器描述中断使能寄存器U0IIRRLS中断RDA中断CTI中断THRE中断VIC中断控制器ARM7TDMI内核U0IERbit2bit1bit0中断源和中断使能的关系U0
21、THRU0TSRTxD0RxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLL UART0相关寄存器描述U0IIR描述复位值0中断挂起。1:没有挂起的中断;0:至少有一个中断被挂起。03 : 1中断标识。这3位表示了对应于UART0 Rx FIFO的中断。未列出的其它组合作为保留值。011:1. 接收线状态中断(RLS)0010:2a. 接收数据可用中断(RDA)0110:2b. 字符超时指示(CTI)001:3. 发送中断(THRE)7 : 3保留,用户软件不要向这些位写入1。未定义中断标识寄存器 U0IIR提供状态代码用于指示一个挂起中断的中断源和优先级。在访问U0IIR过
22、程中,中断被冻结。如果在访问U0IIR时产生了中断,该中断将被记录,在下次访问U0IIR时可以读出,避免了中断的丢失。U0IIR UART0相关寄存器描述中断源说明l RLS中断:该中断为最高优先级。它在UART0产生了四个错误条件(溢出错误(OE)、奇偶错误(PE)、帧错误(FE)和间隔中断(BI))中的任意一个时置位。通过查看U0LSR4:1可以了解到产生该中断的错误条件。读取U0LSR时清除该中断; UART0相关寄存器描述中断源说明lRDA中断:该中断与CTI中断并列为第二优先级。当接收的有效数据到达接收FIFO设置寄存器(U0FCR)中设置的触发点时,RDA被激活。当接收FIFO中的
23、有效数据少于触发点时,RDA复位;1.移位寄存器(U0RSR)从RxD0引脚接收串行数据后,送入接收FIFO中;2.当接收FIFO中的有效数据数量到达预定的触发点时,置位RDA中断;3.从U0RBR寄存器中读取FIFO中最早到达的数据,当FIFO中的有效数据小于预定触发点时,清零RDA中断;接收FIFO12345679101112131415168触发点设置=8U0RBRU0RSRRxD0U0IIR3:1xxxU0IIR010100 xxx1DATA UART0相关寄存器描述中断源说明lCTI中断:该中断为第二优先级。当接收FIFO中的有效数据少于预定的触发点数量,但至少有一个字节时,如果超过
24、接收3.54.5个字节所需要的时间仍没有接收到数据,那将触发该中断。对接收FIFO的任何操作都会清零该中断标志;接收FIFO12345679101112131415168触发点设置=8U0RBR1.移位寄存器(U0RSR)从RxD0引脚接收串行数据后,送入接收FIFO中;2.当接收FIFO中的有效数据少于触发个数,但至少有一个时,如果长时间没有数据到达,将触发CTI中断;3.从U0RBR中读取接收FIFO中的数据,或者有新的数据送入接收FIFO,都将清零CTI中断;U0RSRDATARxD0U0IIR3:1xxxU0IIR011100 xxx1 UART0相关寄存器描述中断源说明lCTI中断:
25、该中断为第二优先级。当接收FIFO中的有效数据少于预定的触发点数量,但至少有一个字节时,如果超过接收3.54.5个字节所需要的时间仍没有接收到数据,那将触发该中断。对接收FIFO的任何操作都会清零该中断标志;接收FIFO12345679101112131415168触发点设置=8U0RBR说明:“3.54.5个字节的时间”,其意思是在串口当前的波特率下,发送3.54.5个字节所需要的时间;U0RSRDATARxD0U0IIR3:1xxxU0IIR011100 xxx1注意:当接收FIFO中存在多个数据,从U0RBR读取数据,但是没有读完所有数据,那么在经过3.54.5个字节的时间后将触发CTI
26、中断;12345679101112131415168U0THRU0TSRTxD0U0IIR3:1xxxU0IIR01 UART0相关寄存器描述中断源说明lTHRE中断:该中断为第三优先级。当发送FIFO为空并且满足一定的条件时,该中断将被触发。这些条件是:发送FIFO1.系统启动时,虽然发送FIFO为空,但不会产生THRE中断。DATA1100U0TSR2.在上一次发生THRE中断后,向发送FIFO中写入1个字节数据,将在延时一个字节加上一个停止位后发生THRE中断。 这是因为:如果发送移位寄存器为空,那么写入发送FIFO的数据将直接进入发送移位寄存器; 此时发送FIFO仍然为空,如果立即产生
27、THRE中断,就会影响紧接着要写入发送FIFO的数据; 所以在发送完该字节以及一个停止位后,才产生THRE中断;3.如果在发送FIFO中有过两个字节以上的数据,但是现在发送FIFO为空时,将立即触发THRE中断。当THRE中断为当前有效的最高优先级中断时,往U0THR写数据,或者对U0IIR的读操作,将使THRE中断复位。 UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位765 : 3210功能Rx触发点设置复位TxFIFO复位RxFIFO使能FIFOFIFO控制
28、寄存器U0FCR U0FCR控制UART0接收和发送FIFO的操作。EnFIFO:FIFO使能。该位的任何变化都将清空UART0的FIFO。 1:使能UART0的接收和发送FIFO,并且允许访问U0FCR7:1。 0:禁止接收FIFO,此时接收缓存只有1个字节。而发送FIFO不会被关闭。 UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位765 : 3210功能Rx触发点设置复位TxFIFO复位RxFIFO使能FIFOFIFO控制寄存器U0FCR复位RxFIFO:接
29、收FIFO复位。当该位置位时,UART0接收FIFO中的所有字节被清零并复位指针逻辑。注意:该位会自动清零。 UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位765 : 3210功能Rx触发点设置复位TxFIFO复位RxFIFO使能FIFOFIFO控制寄存器U0FCR复位TxFIFO:发送FIFO复位。当该位置位时,UART0发送FIFO中的所有字节被清零并复位指针逻辑。注意:该位会自动清零。 UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RS
30、RRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位765 : 3210功能Rx触发点设置复位TxFIFO复位RxFIFO使能FIFOFIFO控制寄存器U0FCR:这些位保留,用户程序不要向这些位写入1。 UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位765 : 3210功能Rx触发点设置复位TxFIFO复位RxFIFO使能FIFOFIFO控制寄存器U0FCRRx触发点设置:通过设置这两位可以调整接收FI
31、FO中触发RDA中断的有效字节数量。00:触发点0(1字节);01:触发点1(4字节);10:触发点2(8字节);11:触发点3(14字节);U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLLU0THRU0TSRTxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLLP11D0D1D2D3D4D5D6D70 UART0相关寄存器描述线状态控制寄存器U0LCR位765 : 4621 :0功能除数锁存间隔奇偶选择奇偶设置停止位字长UART数据帧结构停止位(12位)数据(58位)奇偶
32、校验位(可选)起始位U0LCR寄存器: U0LCR控制发送和接收数据帧的格式。U0THRU0TSRTxD0U0LCRU0LSRU0IIRU0IERU0DLM U0DLLU0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL UART0相关寄存器描述线状态控制寄存器位765 : 4621 :0功能除数锁存间隔奇偶选择奇偶设置停止位字长字长:这些位控制数据长度。00:5位字符长度;01:6位字符长度;10:7位字符长度;11:8位字符长度;位765 : 4621 :0功能除数锁存间隔奇偶选择奇偶设置
33、停止位字长U0LCR UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL线状态控制寄存器U0LCR位765 : 4621 :0功能除数锁存间隔奇偶选择奇偶设置停止位字长停止位:控制每帧数据包含的停止位个数。0:1个停止位;1:2个停止位; UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL线状态控制寄存器U0LCR位765 : 4621 :0
34、功能除数锁存间隔奇偶选择奇偶使能停止位字长奇偶使能:控制是否进行奇偶校验。如果使能,发送时将添加一位校验位。0:禁止奇偶产生和校验;1:使能奇偶产生和校验;奇偶选择:设置奇偶校验类型。00:奇数(数据位+校验位奇数);01:偶数(数据位+校验位偶数);10:校验位强制为1;11:校验位强制为0; UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL线状态控制寄存器U0LCR位765 : 4621 :0功能除数锁存间隔奇偶选择奇偶使能停止位字长间隔:当该位为1时,输出引脚
35、(TxD0)强制为逻辑0,可以引起通信对方(LPC2000)产生间隔中断。在某些通信方式中,使用间隔中断作为通信的起始信号(如:LIN Bus)。0:禁止间隔发送;1:使能间隔发送; UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL线状态控制寄存器U0LCR位765 : 4621 :0功能除数锁存间隔奇偶选择奇偶使能停止位字长除数锁存:因为U0DLL和U0RBR/U0THR的地址重叠,通过设置该位可以指定其中某个寄存器操作。0:禁止访问除数锁存寄存器;1:使能访问除
36、数锁存寄存器; UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR线状态寄存器 U0LSR为只读寄存器,它反映了UART0接收和发送模块的状态信息。RDR:接收数据就绪。判断该位是否置一,决定能否从FIFO中读取数据。 0:U0RBR为空; 1:U0RBR中包含有效数据。从接收FIFO中读走所有数据后,恢复为0。U0LSR UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD
37、0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR线状态寄存器OE:溢出错误标志。当U0RBR寄存器中已经有新的字符就绪,而接收FIFO已满时,该位置位。 0:接收缓存区没有溢出; 1:接收缓存区发生溢出错误。U0LSR UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR线状态寄存器P
38、E:奇偶校验错误。在使能奇偶校验位之后,对所有接收的数据都进行奇偶校验,如果与U0LCR中的设置不符,将引起奇偶校验错误。 0:没有发生奇偶校验错误; 1:发生奇偶校验错误。读操作使该位恢复为0。U0LSR UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR线状态寄存器FE:帧错误标志。当接收字符的停止位为0时,产生帧错误。 0:没有发生帧错误; 1:发生帧错误。读取该位时恢复为0。U0LSR UAR
39、T0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR线状态寄存器BI:间隔中断标志。在接收数据时,如果RXD0引脚保持低电平,将产生间隔中断。发生间隔中断后,接收模块停止数据接收。 0:没有发生间隔中断; 1:发生间隔中断。U0LSR UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DL
40、L位76543210功能RXFETEMTTHREBIFEPEOERDR线状态寄存器THRE:反映U0THR是否为空,也可以认为发送FIFO是否为空。 0:不为空; 1:空。对U0THR进行写操作,使该位恢复为0。U0LSR UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR线状态寄存器TEMT:当发送移位寄存器和U0THR均为空时,该位置位。 0:不为空; 1:空。对U0THR进行写操作,使该位恢复为
41、0。U0LSR UART0相关寄存器描述U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CPU内核相连U0DLM U0DLL位76543210功能RXFETEMTTHREBIFEPEOERDR线状态寄存器RXFE:如果一个带有接收错误(如帧错误、奇偶错误或间隔中断)的字符装入U0RBR时,该位置位。 0:U0RBR中没有接收错误,或U0FCR0为0; 1:U0RBR中包含至少一个UART0 Rx错误。U0LSR5.10 UART0 使用UART0注意要点 U0RBR与U0THR在同一地址上,但实际上是两个独立的寄存器,读操作
42、时选择U0RBR,写操作时选择U0THR; U0DLL与U0RBR/U0THR、U0DLM与U0IER在同一地址上,通过除数访问位DLAB选择。当该位为1时,选择U0DLL和U0DLM。为0时,选择U0RBR/U0THR和U0IER; 无论在U0FCR中是否使能FIFO,接收FIFO不能被禁止。关闭FIFO后,接收FIFO只有一个字节缓冲; 波特率计算公式:U0DLM、U0DLL = FPCLK/(16baud); UART0应用示例操作流程设置引脚连接模块将对应IO连接到UART0设置串口波特率设置串口工作模式发送或接收数据检查串口状态字或等待串口中断 UART0应用示例初始化代码UART0
43、初始化代码:#define UART_BPS 115200Void UART0_Ini(void) uint16 Fdiv; PINSEL0 = 0 x00000005; U0LCR = 0 x83; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0LLM = Fdiv % 256; U0LCR = 0 x03;定义表示波特率的宏,方便修改设置引脚连接模块置位除数锁存位根据波特率计算分频值设置除数寄存器(除数锁存访问位必须置位)清除除数锁存位,并设置工作模式 UART0应用示例初始化代码UART0初始化代码:#define UART_
44、BPS 115200Void UART0_Ini(void) uint16 Fdiv; PINSEL0 = 0 x00000005; U0LCR = 0 x83; Fdiv = (Fpclk / 16) / UART_BPS; U0DLM = Fdiv / 256; U0LLM = Fdiv % 256; U0LCR = 0 x03;设置引脚连接模块将对应IO连接到UART0设置串口波特率设置串口工作模式发送或接收数据检查串口状态字或等待串口中断 UART0应用示例收发数据void UART0_SendByte(uint8 data) U0THR = data; while(U0LSR & 0
45、 x40) = 0);uint8 UART0_RcvByte(void) uint8 rcv_data; while(U0LSR & 0 x01) = 0); rcv_data = U0RBR; return(rcv_data);查询方式发送一字节数据:查询方式接收一字节数据:将要发送的一字节数据写入U0THR等待数据发送完毕等待数据到达从U0RBR中读出接收的数据返回接收的数据第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接
46、口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗5.11 UART1 特性 UART1与UART0基本功能相同,但是增加了一个调制解调器(Modem)接口。所以UART1具有UART0的所有特性。16字节接收FIFO和16字节发送FIFO;寄存器位置符合16C550工业标准;接收FIFO触发点可设置为1、4、8或14字节;内置波特率发生器。UART1具有一个标准的Modem接口,这些引脚为:引脚名称类型描述RxD1输入串行输入,接收数据TxD1输出串行输出,发送数据CTS1输入清除发送,指示外部modem的接收是否已经准备就
47、绪。低电平有效,表示UART1数据可通过TxD1发送。DCD1输入数据载波检测,指示外部modem是否已经与UART1建立了通信连接。低电平有效,表示可以进行数据交换。DSR1输入数据设备就绪,指示外部modem是否准备建立与UART1的连接,低电平有效。DTR1输出数据终端就绪,有效低电平指示UART1准备建立与外部modem的连接。RI1输入铃响指示,指示modem检测到电话的响铃信号,低电平有效。RTS1输出请求发送,指示UART1打算向外部modem发送数据,低电平有效。 使用UART1通信 使用UART1通信LPC2000PC机串口RS232电平转换TxD1RxD1TxD0RxD0R
48、TSCTSDSR1DTR1DCD1RI1RTSCTSDSR1DTR1DCD1RI1 通过PINSEL0寄存器设置来决定是否使用UART1的Modem接口,当使用Modem接口时,需要一个RS232转换器将信号转换为RS232电平后,才能与Modem连接。如果不使用Modem接口功能,UART1与UART0的操作是一样,那么其它的接口可作为GPIO使用。UART0内部结构 UART1的结构与UART0类似,在其基础上增加了控制MODEM接口的寄存器。 UART1内部结构示意图U0THRU0TSRTxD0U0RBRU0RSRRxD0U0LCRU0LSRU0IIRU0IERVPB接口U0FCR与CP
49、U内核相连U0DLM U0DLLU1THRU1TSRTxD0U1RBRU1RSRRxD0U1LCRU1LSRU1IIRU1IERVPB接口U1FCR与CPU内核相连U1DLM U1DLLMODEMU1MSRU1MCRCTSDSRRIDCDDTRRTS5.11 UART1位76543210U1IER0000使能Modem中断使能Rx线状态中断使能THRE 中断使能Rx数据可用中断U1MCR000回送00RTSDTRU1MSRDCDRIDSRCTSDelta DCD后沿RIDelta DSRDelta CTS UART1包含12个8位寄存器,其中大部分寄存器与UART0类似,所以仅介绍不同之处。
50、UART1寄存器描述位76543210U1IER0000使能Modem中断使能Rx线状态中断使能THRE 中断使能Rx数据可用中断使能Modem中断:当该位置位时,允许Modem中断。 Modem中断为最低优先级中断,只要在Modem输入引脚DCD、DSR或CTS上发生任何状态变化,该中断就会激活。此外,Modem输入口RI上出现由低到高的电平跳变会产生一个Modem中断。Modem中断源可通过检查U1MSR3:0得到。读取U1MSR将清除Modem中断。 Mdoem中断在U0IIR中的标志为0 x00。5.11 UART1中断使能寄存器 UART1寄存器描述5.11 UART1Modem控制
51、寄存器 UART1寄存器描述位功能功能描述0DTR控制选择Modem输出引脚DTR。该位在回写模式激活时读出为0。1RTS控制选择Modem输出引脚RTS。该位在回写模式激活时读出为0。3 : 2保留用户软件不要向该位写入14回写模式0:禁止modem回写模式1:使能modem回写模式modem回写模式提供了一个执行回写测试的诊断机制。7 : 5保留用户软件不要向该位写入1 该寄存器使能Modem的回写模式,并控制Modem的输出信号。5.11 UART1回写模式 UART1寄存器描述 在Modem回写模式下,发送器输出的串行数据在内部连接到接收器的串行输入端。输入脚RxD1对回写模式无影响,
52、输出脚TxD1保持总为1的状态。 4个modem输入(CTS, DSR, RI和DCD)与外部断开,并在内部与4个modem输入连接。这样连接的结果是U1MSR的高4位由U1MCR的低4位驱动。这样在回写模式下,写U1MCR的低4位就可产生modem状态中断。 位功能功能描述0Delta CTS检测到CTS状态发生变化时,该位置位。读取U1MSR时清零。1Delta DSR检测到DSR状态发生变化时,该位置位。读取U1MSR时清零。2后沿 RI检测到RI状态发生变化时,该位置位。读取U1MSR时清零。3Delta DCD检测到DCD状态发生变化时,该位置位。读取U1MSR时清零。4CTS反映输
53、入信号CTS的补码。回写模式下该位连接U1MCR的bit1。5DSR反映输入信号DSR的补码。回写模式下该位连接U1MCR的bit0。6RI反映输入信号RI的补码。回写模式下该位连接U1MCR的bit2。7DCD反映输入信号DCD的补码。回写模式下该位连接U1MCR的bit1。Modem状态寄存器 UART1寄存器描述 该寄存器为只读,它反映Modem输入信号的状态信息。需要注意的是,Mdoem信号对UART1的操作没有直接影响,Modem信号的操作是通过软件来实现的。第5章 目录q1.简介q2.引脚配置q3.存储器寻址q4.系统控制模块q5.存储器加速模块q6.外部存储器控制器q7.引脚连接
54、模块q8. 向量中断控制器q9.GPIOq10.UART0q11.UART1q12.I2C接口q13.SPI接口q14.定时器0/1q15.脉宽调制器(PWM)q16.A/D转换器q17.实时时钟q18.看门狗5.12 I2C接口 特性 LPC2000系列微控制器具有一到两个标准的I2C接口,它具有如下特性:可配置为主机(主控器)、从机(被控器);可编程时钟可实现通讯速率控制;主机从机之间双向数据传输;同时发送的主机之间进行自动仲裁,避免了总线数据的冲突。5.12 I2C接口 I2C简介 I2C接口是Philips推出的一种串行总线方式,用于IC器件之间的通信。它通过SDA(串行数据线)和SC
55、L(串行时钟线)两根线在连到总线上的器件之间传送信息,并通过软件寻址识别每个器件,而不需要片选线。 I2C接口的标准传输速率为100Kbit/s,最高传输速率可达400Kbit/s。5.12 I2C接口 I2C简介电气连接 I2C总线接口均为开漏或开集电极输出,因此需要为总线增加上拉电阻Rp。RpRpVDDSCLSDASDA出SDA入SCL入SCL出SCLSDA器件1器件2I2C BUS总线速率越高,总线上拉电阻就越小,100Kbit/s总线速率,通常使用5.1K欧姆的上拉电阻 I2C简介总线时序 在数据传送过程中,必须确认数据传送的开始和结束,这通过起始和结束信号识别。起始信号结束信号SDA
56、SCLSPS从器件地址 R/W第一字节 发送起始信号后传送的第一字节数据具有特别的意义,其中前七位为从机地址,最后一位为读写方向位(0表示写,1表示读)。 I2C简介总线时序 I2C总线数据传送时,每传送一个字节数据后都必须有应答信号(A)。主控器接收数据时,如果要结束通信时,将在停止位之前发送非应答信号( )。_ASDASCL应答信号非应答信号AA I2C简介总线时序 LPC2000在I2C通信中可以配置为主控器也可以作为被控器,那么它就具有4种操作模式:主发送模式、主接收模式、从发送模式和从接收模式。S从器件地址WA数据A数据A/ AP主发送模式:S从器件地址RA数据A数据AP主接收模式:
57、S从器件地址WA数据A数据A/ AP/RS从接收模式:S从器件地址RA数据A数据AP从发送模式:主机到从机从机到主机A = 应答(SDA为低)A = 非应答(SDA为高)S = 起始信号P = 停止信号RS = 重复起始信号5.12 I2C接口 寄存器描述 I2C接口包含7个寄存器。名称描述访问复位值地址I2CONSETI2C控制置位寄存器读/置位00 xE001C000I2STATI2C状态寄存器 只读0 xF80 xE001C004I2DATI2C数据寄存器 读/写00 xE001C008I2ADRI2C从地址寄存器 读/写00 xE001C00CI2SCLHSCL占空比寄存器高半字读/写
58、0 x040 xE001C010I2SCLLSCL占空比寄存器低半字 读/写0 x040 xE001C014I2CONCLRI2C控制清零寄存器 只清零NA0 xE001C018 寄存器描述I2C控制置位寄存器(I2CONSET) I2CONSET寄存器用于置位I2C通信的相关标志位,该寄存器只能对某位置位,而不能清零,清零通过I2CONCLR寄存器完成。位功能描述复位值1:0保留用户程序不要向这些位写入1NA2AA应答标志03SII2C中断标志04STO停止标志05STA起始标志06I2ENI2C接口使能07保留用户程序不要向该位写入1NA 寄存器描述I2C控制置位寄存器(I2CONSET)
59、位功能描述复位值1 : 0保留用户程序不要向这些位写入1NA2AA应答标志03SII2C中断标志04STO停止标志05STA起始标志06I2ENI2C接口使能07保留用户程序不要向该位写入1NA位7654321 : 0功能保留I2ENSTASTOSIAA保留AA:为声明应答标志。 主模式时,该位置零。 从模式时,该位置1。 寄存器描述I2C控制置位寄存器(I2CONSET)位7654321 : 0功能保留I2ENSTASTOSIAA保留SI:为I2C中断标志。 当进入25种可能的I2C状态中的任何一个后,该位置位。 寄存器描述I2C控制置位寄存器(I2CONSET)位7654321 : 0功能
60、保留I2ENSTASTOSIAA保留STO:为停止标志。 当STO为1时,在主模式中,向I2C总线发送一个停止条件或在从模式中使总线从错误状态中恢复。当总线检测到停止条件时,STO自动清零。 寄存器描述I2C控制置位寄存器(I2CONSET)位7654321 : 0功能保留I2ENSTASTOSIAA保留STA:为起始标志。 当STA=1时,I2C接口进入主模式并发送一个起始条件,如果已经处于主模式,则发送一个重复起始条件。 寄存器描述I2C控制置位寄存器(I2CONSET)位7654321 : 0功能保留I2ENSTASTOSIAA保留I2EN:为I2C接口使能。 当该位置位时,使能I2C接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国辐射交联特种电缆数据监测研究报告
- 2025至2030年中国硝酸异山梨酯气雾剂数据监测研究报告
- 2025至2030年中国活化胶粉数据监测研究报告
- 门座式起重机司机特种作业证水平自测试题带答案
- 学校校园绿化树池施工技术措施
- 旅游行业餐饮服务安全培训计划
- 机械制造领域材料质量检验措施
- 2025年汽车4S店数字化转型计划
- 四年级上册法治宣传教育计划
- 高三秋季学期学生自习管理计划
- 电梯维保服务考核标准及评分办法
- (正式版)JBT 3300-2024 平衡重式叉车 整机试验方法
- 2024全新校医合作协议(重点条款版)
- 小脑梗死的护理查房
- 水产养殖公司合伙人股权分配协议
- 特殊教育导论 课件 第一章 特殊教育的基本概念
- 急救医疗资源整合优化研究
- 牛津译林7A-Unit3、4单元复习
- 专题四“挺膺担当”主题团课
- 国家义务教育质量监测初中美术试题
- 超声波探伤作业指导书
评论
0/150
提交评论