- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第04章-1、GPIO的
第四章 LPC1700系列处理器基本接口技术4.1 GPIO接口 GPIO应用场合及特性 应用场合 通用输入输出端口GPIO引脚可以用于驱动LED或其他指示设备; 可以用于控制片外设备; 可以用于探测数字输入信号和检测电平跳变; 还可以用于唤醒某个在省电模式中的外围模块。 GPIO应用场合及特性 特性:LPC1700嵌入式芯片共有的通用输入输出端口GPIO5个,占用P0~P4共70根引脚。这些引脚一般与其他外围设备模块引脚复用,所以在某些应用场合不是所有GPIO引脚都能使用。 应用场合:GPIO引脚可以用于驱动LED或其他指示设备;可以用于控制片外设备;可以用于探测数字输入信号和检测电平跳变;还可以用于唤醒某个在省电模式中的外围模块。 GPIO寄存器描述 GPIO编程方法 设置方向、设置某位(某几位)为1、设置某位(某几位)为0、整个端口输出一个数据等等 寄存器列表:FIOPIN、FIOSET、FIODIR、FIOCLR、FIOMASK等等 GPIO寄存器描述 GPIO端口方向控制寄存器(FIO[0/1/2/3/4]DIR) 该32位寄存器用于控制已配置为GPIO的引脚的输入输出方向。在实际应用中应根据引脚的功能正确设置其输入输出方向。 每个快速GPIO端口可以通过几个8位和16位寄存器控制。使用这些寄存器用户程序能更快更容易地访问物理端口。 GPIO端口输出置位寄存器(FIO[0/1/2/3/4]SET) 该寄存器用于在GPIO的输出引脚产生高电平输入。 对应位写1,则对应引脚输出高电平,写0无效。如果引脚被配置位输入或其他功能,则写1也无效。对该寄存器执行读操作,返回前一次对该寄存器写入的值,而对外部引脚状态无影响。 对FIOSET寄存器的访问是否有效要根据FIOMASK寄存器的对应位的状态而定。 每个快速GPIO端口可以通过几个8位和16位寄存器控制。 GPIO端口输出清除寄存器(FIO[0/1/2/3/4]CLR) 该寄存器用于在GPIO的输出引脚产生低电平输出。 对应位写1,则对应引脚输出低电平并且清除IOSET寄存器中对应位,写0无效。如果引脚被配置位输入或其他功能,则写1也无效。 对FIOCLR寄存器的访问是否有效要根据FIOMASK寄存器的对应位的状态而定。 每个快速GPIO端口可以通过几个8位和16位寄存器控制。 GPIO端口引脚值寄存器(FIO[0/1/2/3/4]PIN) 该寄存器只提供那些被配置为数字功能的引脚端口值。寄存器保存了端口引脚的逻辑值,而无论引脚被配置位输入或输出,亦或者配置为数字功能模块。比如,某个端口引脚可以配置位GPIO输入、输出,UART输入,PWM输出等功能。 如果引脚被设置位模拟功能,引脚的状态则不能被有效读到。例如引脚被配置位A/D输入,则该引脚在IOPIN中的值为无效的。 写入IOPIN寄存器的值保存在端口的输出寄存器中,省去了分别写IOSET和IOCLR寄存器的步骤。使用该寄存器时要特别注意,因为一个值写入,整个端口引脚的状态都被更新了。 如向IOXPIN写入0x0000FFFF时,端口的高16根引脚变为低电平输出,低16根引脚变为高电平输出。 快速GPIO端口屏蔽寄存器(FIO[0/1/2/3/4]MASK) 该寄存器属于快速GPIO端口寄存器组。它用于允许或禁止通过写FIOPIN,FIOSET,FIOCLR寄存器来控制端口引脚状态的操作。屏蔽寄存器也能用于屏蔽对FIOPIN寄存器的读操作。 寄存器中某位为0,则允许读或写操作对应端口引脚。如果寄存器中某位为1,则无法通过写操作改变引脚状态,如果读取FIOPIN寄存器,该引脚的当前状态也不会反应出来。 每个快速GPIO端口可以通过几个8位和16位寄存器控制。 GPIO总中断状态寄存器(IOIntStatus) 该只读寄存器保存了支持中断的GPIO端口产生的中断请求。寄存器每位代表一个端口。 GPIO上升沿中断使能寄存器(IO[0/2]IntEnR) 该读写寄存器每位使能对应GPIO端口引脚为上升沿中断。 GPIO上升沿中断状态寄存器(IO[0/2]IntStatR) 该读写寄存器每位表示对应端口各引脚的上升沿中断状态。 GPIO中断清除寄存器(IO[0/2]IntClr) 该寄存器为只读,对每位写1则清除对应GPIO端口的任何中断状态。 应用举例 本例使用端口2的P2.0~P2.7八根引脚控八盏LED灯。引脚配置为输出,当引脚输出高电平时点亮LED灯,输出低电平熄灭LED灯。 应用举例 本例里的两个按键key1和key2使用的是P2端口的两个引脚P2.11和P2.22,配置为输入引脚。读引脚值为高电平则为按键断开,低电平为按键闭合。
文档评论(0)