原创 LPC2364学习之GPIO操作

2013-11-3 22:27 1516 14 17 分类: MCU/ 嵌入式

在学校只学了51,搞懂点皮毛就自以为可以了,也没参加过什么竞赛,毕设弄了两个多月才憋出了一百多行C51代码,马马虎虎通过了。结果出来才发现单片机早已经是arm时代,看了网上各种arm教程眼都花了,这边找一点那边下一点,也没看出个所以然,不过能确定的是要想发展下去,arm是非学不可了,上班之余,请教了领导,要了一些公司现用的lpc2364的资料,自己慢慢搞吧,不求一日千里,但求每天都在进步……

 

不费话了,下面说说调试GPIO的过程吧……

 

首先就是启动代码和一些必须的外设初始化配置代码,都是领导给的现成的,比较复杂,作为新手的我听了领导的建议直接先跳了过去……

arm7的IO控制比51要复杂,每个port端口(port0—port4)都是32位的,基本上每个脚都有复用,默认下是配置成GPIO的,也就是用PINSEL寄存器来控制复用功能的选择,其中,两个PINSEL寄存器用来决定一个port端口32个位的功能选择,比如:PINSEL0和PINSEL1决定着port0端口每个位的功能选择。

如果要将port0全部配置位gpio那么配置代码就该是:

PINSEL0=0x00000000;

PINSEL1=0x00000000;

如果要配置具体的端口号,只需要配置对应的位就行了,例如:将0.2和P0.3配置成uart,代码就是:

PINSEL0=0x00000050; 十六进制的5对应二进制的0101


其次就是PINMODE寄存器,用来控制每个位的片内上拉、下拉电阻的,这个寄存器我没配置,具体参考我后面附上的pdf和代码;

 

往下就是IODIR、IOSET和IOCLR寄存器的配置,具体功能参考pdf,其中IOSET和IOCLR寄存器都是写1有效哦,这一点跟51是不一样的。

 

要用GPIO点亮一个LED,基本上上面提到的寄存器配置好就够了。

 

对于IOPIN寄存器的用法,用上面的IOSET和IOCLR只能是写1有效,但如果要使0、1同时有效,而忽略这两个寄存器配置,只写IOPIN寄存器就行了,具体代码参考我附上的文件

 

以上所说的都是慢速GPIO的操作,lpc2364还有一种快速的GPIO操作,实现高速访问物理端口,这种模式下还可以通过半字和单字节操作GPIO,具体寄存器可参考pdf。

 

需要知道的是,port2、3、4只可做快速gpio来用,port0、1即可用作慢速GPIO也可用作快速的,如果作为快速GPIO来用,需要将SCS寄存器bit0配置成1来时能快速GPIO port0、1,具体代码参考我附上的文件

 

作为快速GPIO时,FIODIR、FIOSET、FIOCLR、FIOPIN寄存器配置同慢速时一样,其中FIOMASK寄存器比较特殊,它是用来在快速GPIO中屏蔽不需要配置的位,具体操作参考附上代码。

 

有不对的地方欢迎大神们指正,作为新手期待高手的指导……
 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

644398774_263592779 2013-11-15 00:32

个人认为,51学得好了,ARM就容易入门!

hyycm0813_365022667 2013-11-6 21:15

刚入门,仅仅是arm片内外设的一些驱动编程,还正在学习中,你学linux应该是内核编程吧,貌似我插不上嘴啊,现在调个串口中断都能把我搞晕……

用户467123 2013-11-4 21:46

楼主在学嵌入式啊,我今年毕业后一直在自学嵌入式linux,能留个联系方式吗?一起讨论交流,这是我的QQ:805666376
相关推荐阅读
hyycm0813_365022667 2014-03-09 21:36
加速和改进PCB布线
PCB布线方法在不断进步,灵活的布线技术可以缩短导线长度,释放更多的PCB空间。传统PCB布线受到导线坐标固定和缺少任意角度导线的限制。去除这些限制可以显著改善布线的质量。本文将通过实际例子介绍任意角...
hyycm0813_365022667 2014-02-09 23:31
LPC2364学习之UART操作
新年第一谈,祝EDN的各位版主、博主和网友们在新的一年快马加鞭,马到成功!也祝本命年的自己能够在这一年有所突破! 入正题…… 通用异步收发器(UART),也就是我们常说的串口,通过操作串口,可以实现单...
hyycm0813_365022667 2013-11-06 21:45
PCB设计黄金法则永不改变
尽管目前半导体集成度越来越高,许多应用也都有随时可用的片上系统,同时许多功能强大且开箱即用的开发板也越来越可轻松获取,但许多使用案例中电子产品的应用仍然需要使用定制PCB。 在一次性开发当中,即使一...
hyycm0813_365022667 2013-10-05 23:09
从今天起,不定期更新一些个人工作、生活上的一些经历和总结吧……
可能内容会很混乱,但至少都是自己琢磨出来的东西,等以后再回头看看这一段心历路程,希望对自己会有所启发吧。从学校走出来也有一年零四个月了,有幸一直从事着本专业方面的工作,从埋头苦练焊接到现在能够参考...
hyycm0813_365022667 2013-07-29 12:38
选择微控制器的10个步骤
选择适合某个产品使用的微处理器是一项艰巨的任务。不仅要考虑许多技术因素,而且要考虑可能影响到项目成败的成本和交货时间等商业问题。 在项目刚启动时,人们经常压抑不住马上动手的欲望,在系统细节出台之前就...
EE直播间
更多
我要评论
3
14
关闭 站长推荐上一条 /3 下一条