ARM7 笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM7 笔记

ARM7 笔记 (1)管脚IO 深入浅出ARM7(周立功)130页 深入浅出ARM7(周立功)157页 PINSEL设置管脚状态 GPIO 快慢速GPIO由SCS控制,置1为快速 慢速GPIO IODIR (GPIO方向设置 0输入,1输出) IOPIN (端口数值) IOSET (端口输出置位,GPIO必须为输出 IODIR=1) IOCLR (端口输出清零,与IOSET对应) 快速GPIO FIODIR (GPIO方向设置 0输入,1输出) FIOPIN (端口数值) FIOSET (端口输出置位,GPIO必须为输出 FIODIR=1) FIOCLR (端口输出清零,与FIOSET对应) FIOMASK (端口开关) (2)UART UART 1 初始化 VPBDIV = 0x02; /* PCLK=60MHz CCLK=PCLK/2=30MHz */ PINSEL0 = 0 /* Enable RxD1 and TxD1 */ U1LCR = 0 /* 使能U1DLM.U1DLL除数锁存器访问 */ U1DLL = 0x000000C2; /* 9600 Baud Rate @ 30MHz VPB Clock */ /* 30M / (U1DLL*16)= 9600K */ U1LCR = 0 /* DLAB = 0 禁止访问U1DLM,U1DLL除数锁存器*/ /* 8 bits, no Parity, 1 Stop bit */ U1FDR = 0 /* MUVAL 必须大于1 LPC2100没有 */ 写操作 U1THR=dat; while(!(U1LSR 0x20)); //或者 while(!(U1LSR 0x40)); 读操作 while (!(U1LSR 0x01)); dat=U1RBR; 中断操作 void __irq UART1_IRQ(void) { if((U1IIR0x0e)==0x04) //判断进入的是否为UART1接收中断 { while (!(U1LSR 0x01));//等待数据接收完毕 U1THR=U1RBR+1; //将接收到的串口数据+1后再传给串口 while( PE==0 ); //等待数据发送完毕 PE=1忙碌;PE=0;不忙绿 } else {;} VICVectAddr=0x00; //向量地址寄存器,IRQ中断发生时, //IRQ服务程序跳转到该寄存器读出的值,结束后置零 } (3)中断 深入浅出ARM7(周立功)85页 深入浅出ARM7(周立功)113页 外部中断设置 EXTINT 7:4 3 2 1 0 - - - - EINT3 EINT2 EINT1 EINT0 EXTWAKE EXTMODE EXTPOLAR void Interrupt_Init(void) { PINSEL1 = 0x01; //设定P0.16 外部中断 EXTMODE = 0x01; //电平触发 EXTPOLAR= 0x00; //低电平触发 EXTINT = 0x0F; //清除所有外部中断 } 中断设置 1.快速中断 例如 VICIntSelect = 1 EINT0; //EINT0为EINT0的中断号 VICIntEnable = 1 EINT0; 中断服务 EXTINT = 0x01; 2.向量IRQ 不要将中断编号分配给多于一个使能IRQ 定义中断服务函数必须加入 __irq, 如:void __irq IRQ_Eint0(void) VICIntSelect = 0 //设置所有中断为IRQ VICVectCntl0 = 0x20 | 0x0e; //分配外部中断0 EINT0和通道0 VICVectAddr0 = (long)IRQ_Eint0; //设置中断服务地址 VICIntEnable = 1 0x0e; //使能EINT0中断 中断服务 EXTINT = 0x01; VICVectAddr = 0; IRQ中断服务函数例子 #include LPC21xx.h vo

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档