求助:谁能发一份用MDK编写的LPC23XX UART0 中断接收的例程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助:谁能发一份用MDK编写的LPC23XX UART0 中断接收的例程相关的知识,希望对你有一定的参考价值。
下面这个是周工的例程,在MDK下能编译通过,但是中断死活都进不去,求大师能帮忙看下哪里有问题。谢谢。
#include"lpc23xx.h"
#include <stdio.h>
#define UART0_INT 6
#define Baud 9600
#define uint32 unsigned int
#define uint8 unsigned char
#define Fpclk 12000000
volatile uint32 Rcv_New = 0; // 为1时表明接收到新数据
volatile uint32 Snd_N = 0; // 记录接收数据完毕后,需发送数据的个数
uint8 Rcv_Buf[16]; // 字符接收数组
/* 该宏先发送回车字符0x0d到EasyARM串口调试软件,然后再发送换行字符0x0a */
#define DISP_CHANGEROW() UART0_SendByte (0x0d); UART0_SendByte (0x0a)
void UART0_SendByte(char dat)
U0THR = dat;
while ((U0LSR & 0x40) == 0); // 等待数据发送完毕
void UART0_SendStr(char *str)
while (1)
if (*str == '\0')
break; // 遇到结束符,退出
UART0_SendByte(*str++);
void UART0_SendBuf(uint8* RcvBufPt, uint32 snd_n)
uint32 i;
VICIntEnClr |= 1 << UART0_INT; // 保护字符接收数组不被其它中断破坏
for (i = 0; i < snd_n; i++) // 使用发送FIFO发送数据
U0THR = RcvBufPt[i];
while ((U0LSR & 0x40) == 0); // 等待数据发送完毕
VICIntEnable |= 1 << UART0_INT;
void __irq IRQ_UART0(void)// __irq
uint8 temp=0;
uint32 i = 0;
uint32 IIR = 0;
/* UART0接收中断处理 */
while (((IIR = U0IIR) & 0x01) == 0) // 若尚有中断待处理
switch (IIR & 0x0e)
case 0x02: /* THRE中断 */
break;
case 0x04: /* 接收数据可用 */
U0IER = U0IER & (~0x01); /* 禁止接收及字符超时中断 */
for(i=0;i<14;i++)
temp = U0RBR;
// UART0SendByte(temp);
// UartProtoco(temp);
Rcv_New=1;
U0IER = U0IER | 0x01;
break;
case 0x06: /* 接收线状态 */
temp = U0LSR;
break;
case 0x0c: /* 字符超时指示 */
//U0IER = U0IER & (~0x01); /* 禁止接收及字符超时中断 */
temp = U0RBR;
Rcv_New=1;
// UART0SendByte(temp);
// UartProtoco(temp);
//U0IER = U0IER | 0x01;
break;
default :
break;
VICVectAddr = 0x00;
void UART0_Init(void)
/* 在PCONP里启用UART0 */
PCONP |= 1 << 3; // 使能UART0
/* 初始化引脚 */
PINSEL0 = (0x01 << 4) | (0x01 << 6); // 设置P0.2和P0.3连接到UART0
U0LCR = 0x83;
U0DLM = ((Fpclk / 16) / Baud) / 256;
U0DLL = ((Fpclk / 16) / Baud) % 256;
U0LCR = 0x03;
/* 设置FIFO */
U0FCR = 0x83; // 使能FIFO,并设置FIFO触发深度大小为8个字节
U0IER |= 0x01; // 使能RDA中断
/* 初始化UART VIC 中断接口 */
VICIntSelect = 0x00000000;
// VICIntEnClr |= 1 << UART0_INT;
// VICVectPri6 = 0x05;
VICVectCntl6=0x20|0x06;
VICVectAddr6 = (uint32)IRQ_UART0;
VICIntEnable = 0x00000040;
// IRQEnable();
int main(void)
UART0_Init();
while (1)
// if (Rcv_New == 1)
// Rcv_New = 0;
// UART0_SendBuf(Rcv_Buf, Snd_N);
return (0);
CREATE TABLESPACE data01
DATAFILE 'D:\oracle\ora92\oradata\db\DATA01.dbf' SIZE 200M
UNIFORM SIZE 128k;
#指定区尺寸为128k,如不指定,区尺寸默认为64k
--建立临时表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE 'D:\TEMP_DATA.dbf' SIZE 100M
--建立用户
CREATE USER peter IDENTIFIED BY peter
DEFAULT TABLESPACE data01
TEMPORARY TABLESPACE temp_data;
--给用户授权
grant connect,resource,dba to peter;
-- 从 '建立表空间' 到 '建立临时表空间' 到 ’建立用户‘ 到 ’给用户授权’ ,
-- 到此就可以用建立的用户进行登陆,然后建立table了
-- 并且以某个用户的身份进行登陆,进行备份与还原了
一、建立表空间
CREATE TABLESPACE data01
DATAFILE '/oracle/oradata/db/DATA01.dbf'
SIZE 500M
UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
(注意,必须先写datafile才能写size和uniform size,因为只有先指定了文件才能够指定文件的大小,这是一个因果关系)
二、建立UNDO表空间
CREATE UNDO TABLESPACE UNDOTBS02
DATAFILE '/oracle/oradata/db/UNDOTBS02.dbf' SIZE 50M
#注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:
ALTER SYSTEM SET undo_tablespace=UNDOTBS02;
三、建立临时表空间
CREATE TEMPORARY TABLESPACE temp_data
TEMPFILE '/oracle/oradata/db/TEMP_DATA.dbf' SIZE 50M
四、改变表空间状态
1.使表空间脱机
ALTER TABLESPACE game OFFLINE;
如果是意外删除了数据文件,则必须带有RECOVER选项
ALTER TABLESPACE game OFFLINE FOR RECOVER;
2.使表空间联机
ALTER TABLESPACE game ONLINE;
3.使数据文件脱机
ALTER DATABASE DATAFILE 3 OFFLINE;
4.使数据文件联机
ALTER DATABASE DATAFILE 3 ONLINE;
5.使表空间只读
ALTER TABLESPACE game READ ONLY;
6.使表空间可读写
ALTER TABLESPACE game READ WRITE;
五、删除表空间(删除临时表空间也是同样的写法)
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
drop tablespace temp_data including contents and datafiles;(删除临时表空间)
六、扩展表空间
首先查看表空间的名字和所属文件
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
1.增加数据文件
ALTER TABLESPACE game
ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M;
2.手动增加数据文件尺寸
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf'
RESIZE 4000M;
3.设定数据文件自动扩展
ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf
AUTOEXTEND ON NEXT 100M
MAXSIZE 10000M;
求助,请给小弟一份用官方的汉化包汉化DevExpress的详细步骤
参考技术A 先把语言包拷的安装目录里面的语言文件夹 然后重启模拟器,在选项里面找到语言设置,对应的框中就用你放进去的中文语言了以上是关于求助:谁能发一份用MDK编写的LPC23XX UART0 中断接收的例程的主要内容,如果未能解决你的问题,请参考以下文章